In [1]:
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
import mpl_toolkits as mplot3d
import scipy as sp
pd.set_option("display.max_columns", None)
from tqdm import tqdm
tqdm.pandas()
In [2]:
def lighten_color(color, amount=0.5):
"""
Lightens the given color by multiplying (1-luminosity) by the given amount.
Input can be matplotlib color string, hex string, or RGB tuple.
Examples:
>> lighten_color('g', 0.3)
>> lighten_color('#F034A3', 0.6)
>> lighten_color((.3,.55,.1), 0.5)
"""
import matplotlib.colors as mc
import colorsys
try:
c = mc.cnames[color]
except:
c = color
c = colorsys.rgb_to_hls(*mc.to_rgb(c))
return colorsys.hls_to_rgb(c[0], 1 - amount * (1 - c[1]), c[2])
DATA CLEANING AND WRANGLING¶
Typeform Data¶
In [3]:
d0 = pd.read_excel("risk literacy_985 responses.xlsx", sheet_name = "643 above median").rename({"#":"ResponseId"}, axis = 1)
d0 = d0.loc[ (d0["Please state your current occupation."] != "Investment Professional, i.e. stock broker/trader; financial planner/advisor; portfolio manager; investment banker; stock analyst; venture capital/private equity; insurance agent, etc.") ]
d0
Out[3]:
| ResponseId | Please indicate your Gender. | Please mark your age (in years) | What is currently your highest Education? | Please state your current occupation. | How do you describe your willingness to take financial risk in general? | Given the number of years that you have held various investments and the amount of investing you might have done, what degree of investment experience in the stock market do you have? | If an expert tries to worry or scare me, i.e. a financial advisor about my financial situation, I choose another expert. | I only buy a financial product I understand. | I trust doctors. | When I want to buy a bigger item like a refrigerator or an expensive item of clothing, I wait a month to see whether I still want it and only buy it then. | I always keep in mind that everything I do on the web could be used to my disadvantage. | In my household, we/I spend: | In my household, we/I | _Distribution 1_\n\nHow risky do you perceive the investment to be? | _Distribution 2_\n\nHow risky do you perceive the investment to be? | _Distribution 3_\n\nHow risky do you perceive the investment to be? | _Distribution 4_\n\nHow risky do you perceive the investment to be? | _Distribution 5_\n\nHow risky do you perceive the investment to be? | Distribution 6\n\nHow risky do you perceive the investment to be? | Distribution 7\n\nHow risky do you perceive the investment to be? | Distribution 8\n\nHow risky do you perceive the investment to be? | *Mumbai * A = 9 out of 10000 *OR * B = 1 out of 1000 | *Bengaluru * A = 0.7% *OR * B = 0.099% | *Kolkata * A = 0.61% *OR * B = 6 out of 10000 | HIV test | Fingerprint | DNA test | Cancer screening test | Professional horoscope | A study estimates that eating 100g chocolate everyday increases the risk of obesity by 20%. Which of the following statements is true? | There is an official prediction that the national stock market will grow 2% annually over the next 5 years. This means that… | Imagine you are told that the price of the stock Soya Ruchi increases from INR 60 to INR 120 after the company merger. What does this mean? | It is predicted that Indigo Bank has 30% chance of default next year. Which of the following alternatives is the most appropriate interpretation of the statement? | The probability that the economy will go into a recession this year is 30%. If the economy goes into recession, the probability that the stock market will decrease is 80%. If the economy does not go into a recession, the probability that the stock market will decrease is 23%. What is the probability that the economy goes into recession given that the stock market decreased? | A new policy intervention increases the number of people who are employed by 20%. This statistic implies that the intervention increases the number of people who are employed from: | Imagine you are told that a new medication increases the number of people who recover from a disease from 2 out of 1,000 to 4 out of 1,000. This implies: | Imagine that we flip a fair coin 1,000 times. What is your best guess about how many times the coin will come up heads in 1,000 flips? \n\n\_\_\_\_\_\_ times out of 1,000. | In the Bingo Lottery, the chance of winning a $10 prize is 1%. What is your best guess about how many people will win a $10 prize if 1,000 people each buy a single ticket for Bingo Lottery?\n\n\_\_\_\_\_\_ person(s) out of 1,000. | In a sweepstakes, the chance of winning a car is 1 in 1,000. What percentage of tickets for the sweepstakes wins a car?\n\n\_\_\_\_\_ % of tickets | About 10 out of 1,000 children develop Down syndrome. In a Down syndrome test, 9 out of these 10 children with Down syndrome tested positive. Out of the 990 children without Down syndrome 50 nevertheless tested positive. Among those women with a positive test result concerning their child how many actually have a child with Down syndrome? [Select one response only] | Approximately what percentage (%) of people who die from cancer die from colon cancer, breast cancer, and prostate cancer taken together? | The following figure shows the number of men and women among a group of smartphone users. The total number of circles is 100. \n\nHow many more men than women are there among the 100 people using a smartphone? | In a magazine you see two advertisements, one on page 5 and another on page 12. Each is for a different drug for treating heart disease, and each includes a graph showing the effectiveness of the drug compared to a placebo (sugar pill).\n\nCompared to the placebo, which treatment leads to a larger decrease in the percentage of patients who die? | Please indicate your approximate annual personal income from all sources for last year | Please provide a rough guess (in Indian Rupees) of the worth of your household's assets. Please do not forget to correct it for your debts, such as a mortgage or any loans you might have. | uid | Response Type | Start Date (UTC) | Stage Date (UTC) | Submit Date (UTC) | Network ID | LTA | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2 | 6458w9qj8sqw7ldtt56457hzeduqz2qb | Female | 36 - 45 | Post Graduate | Employee/Consultant in Other than the Finance ... | 6 | 10 | Completely | Just about | Completely | Just about | Completely | all or more than the household income, even th... | have an emergency fund, and spend as it feels ... | 7 | 3 | 6 | 7 | 6 | 7 | 6 | 7 | B | A | B | Yes | Yes | Yes | Yes | Yes | The lower the quality of the study, the more l... | the growth rate over five years will be betwee... | the stock price increased by 100% | 30% of central bankers think that Indigo Bank ... | 80% | 100 in 10,000 people prior to the intervention... | The medication increases recovery by 100% | 10 | 100 | 10 | 59 out of 100 | 20 | 10 | Crosicol | 35,00,001 - 45,00,000 | 10 | MXzTR1725956643Vmr | completed | 2024-09-10 08:25:58 | NaN | 2024-09-10 08:33:57 | 942e517f31 | 5.543981 |
| 3 | 9woo3kquplxhob9whhbfvhleezgy3m8l | Male | 25 - 35 | Post Graduate | Employee/Consultant in Other than the Finance ... | 5 | 3 | Somewhat | Somewhat | Somewhat | Not at all | Somewhat | all or more than our household income, because... | write down budget and spending, and have an em... | 4 | 2 | 4 | 1 | 1 | 7 | 6 | 3 | A | B | A | Yes | Yes | Yes | No | No | Irrespective of the quality of the study, futu... | the growth rate over five years will be betwee... | the stock price increased by 50% | Banks similar to Indigo will default 30% of th... | 30% | 5 in 100 people prior to the intervention to 6... | The medication increases recovery by 2% | 500 | 10 | 10 | 59 out of 1000 | 50 | 10 | Hertinol | 5,00,000 - 15,00,000 | 50000 | MXhzL1725956594UqF | completed | 2024-09-10 08:25:48 | NaN | 2024-09-10 08:35:16 | dcc2ff7969 | 6.574074 |
| 4 | bago2g5wtk2g5u2h0xbago2g00a6b3jx | Female | 18 - 25 | Post Graduate | Student | 3 | 2 | Somewhat | Just about | Completely | Completely | Just about | less than half of the household income and sav... | spend as it feel right, and do not have an eme... | 3 | 4 | 6 | 3 | 1 | 7 | 7 | 5 | B | A | B | Yes | Yes | Yes | No | No | The higher the quality of the study, the more ... | the growth rate will be 0.4% on average each year | the stock price increased by 50% | The bank will default on 30% of repayments in ... | 80% | it is not possible to determine which of the a... | The medication increases recovery by 100% | 500 | 10 | 10 | 9 out of 59 | 25 | 60 | Hertinol | 5,00,000 - 15,00,000 | 4000000 | MXE5b1725956481kmw | completed | 2024-09-10 08:25:12 | NaN | 2024-09-10 08:36:22 | ed3799240f | 7.754630 |
| 5 | huy0uxnebqrbqdegrz2sxhofkhuy0ux0 | Female | 25 - 35 | Under Graduate | Home Maker or not employed | 5 | 0 | Somewhat | Moderately | Moderately | Somewhat | Not at all | all or more than the household income, even th... | have an emergency fund, and spend as it feels ... | 5 | 4 | 3 | 6 | 1 | 2 | 7 | 3 | A | A | B | Yes | Yes | Yes | Yes | Yes | The higher the quality of the study, the more ... | the growth rate over five years will be exactl... | the stock price increased by 100% | 30% of the banks customers will default next year | 30% | 5 in 100 people prior to the intervention to 6... | None of the above is implied. | 20 | 1 | 1 | 59 out of 100 | 50 | 40 | Can’t say | < 5,00,000 | 500000 | MXWUf1725956389QtP | completed | 2024-09-10 08:25:04 | NaN | 2024-09-10 08:34:00 | b9b7c6efb9 | 6.203704 |
| 7 | bm66xvxw1reh3fbm668aomqq4gckt8ao | Male | 25 - 35 | Post Graduate | Employee/Consultant in Other than the Finance ... | 7 | 10 | Completely | Completely | Completely | Completely | Completely | all or more than the household income, even th... | have an emergency fund, and spend as it feels ... | 7 | 7 | 7 | 7 | 7 | 7 | 7 | 7 | A | A | A | No | Yes | Yes | No | Yes | The higher the quality of the study, the more ... | the growth rate over five years will be exactl... | the stock price increased by 100% | Banks similar to Indigo will default 30% of th... | 50% | 100 in 10,000 people prior to the intervention... | The medication increases recovery by 50% | 800 | 500 | 60 | 59 out of 1000 | 30 | 50 | Crosicol | > 45,00,000 | 400000 | MXnNH1725956452gcb | completed | 2024-09-10 08:24:01 | NaN | 2024-09-10 08:37:41 | 097676ebd8 | 9.490741 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 635 | 7my3wgtsbfwf8wr4f90f7my3wy5i8juf | Male | 56 - 65 | Under Graduate | Employee/Consultant in Other than the Finance ... | 6 | 7 | Just about | Just about | Just about | Just about | Just about | all or more than our household income, because... | write down budget and spending, but have no em... | 5 | 5 | 5 | 5 | 5 | 5 | 6 | 6 | B | B | A | No | Yes | No | No | Yes | Irrespective of the quality of the study, futu... | the growth rate over five years will be betwee... | the stock price increased by 50% | 30% of the banks customers will default next year | 50% | 5 in 100 people prior to the intervention to 6... | The medication increases recovery by 100% | 1000 | 1000 | 100 | 9 out of 10 | 50 | 50 | Crosicol | 5,00,000 - 15,00,000 | 999900 | MXX1J1724688179GOm | completed | 2024-08-26 16:04:51 | NaN | 2024-08-26 16:14:59 | 4ae93bad32 | 7.037037 |
| 637 | ukj87cqk7sxt1a977ukj7dlqa19b34pg | Female | 25 - 35 | Post Graduate | Employee/Consultant in Other than the Finance ... | 4 | 5 | Somewhat | Moderately | Moderately | Not at all | Somewhat | more than half of the household income and sav... | write down budget and spending, and have an em... | 6 | 6 | 6 | 2 | 3 | 1 | 3 | 5 | A | A | B | Yes | Yes | Yes | Yes | Yes | Irrespective of the quality of the study, futu... | the growth rate over five years will be betwee... | the stock price increased by 50% | 30% of the banks customers will default next year | 30% | it is not possible to determine which of the a... | The medication increases recovery by 2% | 500 | 250 | 50 | 9 out of 10 | 90 | 60 | Can’t say | < 5,00,000 | 100000 | MXxJi1724688182ARM | completed | 2024-08-26 16:04:22 | NaN | 2024-08-26 16:13:02 | ff51233502 | 6.018519 |
| 638 | tod55nr27ozkyci5tod5rup87g8lo9ss | Male | 18 - 25 | Diploma or vocation training | Entrepreneur or Own Business | 4 | 2 | Somewhat | Moderately | Moderately | Somewhat | Moderately | all or more than our household income, because... | write down budget and spending, and have an em... | 1 | 4 | 4 | 2 | 5 | 5 | 0 | 4 | B | B | A | Yes | Yes | Yes | No | No | Irrespective of the quality of the study, futu... | the growth rate will be 0.4% on average each year | an answer is not possible based on the informa... | The bank will default on 30% of repayments in ... | 50% | 70 in 100 people prior to the intervention to ... | None of the above is implied. | 500 | 10 | 1 | 59 out of 100 | 50 | 10 | Hertinol | 25,00,001 - 35,00,000 | 5000000 | MXLz61724688143Vic | completed | 2024-08-26 16:04:07 | NaN | 2024-08-26 16:12:43 | e7e6df96c7 | 5.972222 |
| 641 | 13nxdmew77mtq97scc6r13nxduhpev0l | Male | 25 - 35 | Post Graduate | Entrepreneur or Own Business | 5 | 9 | Moderately | Moderately | Moderately | Moderately | Somewhat | less than half of the household income and sav... | have an emergency fund, and spend as it feels ... | 3 | 3 | 5 | 1 | 0 | 3 | 7 | 2 | A | B | A | Yes | Yes | Yes | Yes | No | The higher the quality of the study, the more ... | the growth rate will be 0.4% on average each year | the stock price increased by 100% | 30% of the banks customers will default next year | 30% | 100 in 10,000 people prior to the intervention... | The medication increases recovery by 50% | 500 | 100 | 1 | 59 out of 1000 | 25 | 60 | Crosicol | 15,00,001 - 25,00,000 | 13000000 | MXcTq1724679467kFu | completed | 2024-08-26 13:39:40 | NaN | 2024-08-26 13:49:13 | 5a7cce9582 | 6.631944 |
| 642 | s5m2omt6lyzdyeb1k9cs5m2omtmv05c3 | Female | 18 - 25 | Post Graduate | Employee/Consultant in Other than the Finance ... | 6 | 1 | Somewhat | Moderately | Moderately | Moderately | Moderately | more than half of the household income and sav... | write down budget and spending, and have an em... | 5 | 0 | 6 | 1 | 6 | 6 | 0 | 6 | A | A | A | Yes | Yes | Yes | Yes | No | The lower the quality of the study, the more l... | it is not possible to predict the growth rate ... | the stock price increased by 50% | The bank will default on 30% of repayments in ... | 30% | 70 in 100 people prior to the intervention to ... | The medication increases recovery by 50% | 500 | 10 | 1 | 59 out of 1000 | 25 | 60 | Crosicol | 15,00,001 - 25,00,000 | 100000 | MX4Er1724679488ZwW | completed | 2024-08-26 13:39:25 | NaN | 2024-08-26 13:54:38 | 3e73e75dfb | 10.567130 |
489 rows × 53 columns
In [4]:
d0["Please state your current occupation."].value_counts()
Out[4]:
Please state your current occupation. Employee/Consultant in Other than the Finance Sector 378 Entrepreneur or Own Business 96 Student 7 Home Maker or not employed 5 Retired person 3 Name: count, dtype: int64
Demographics¶
In [5]:
# Age groups/rec = [2,3,4]
# Age group 2 = 18 to 35 y/o
# Age group 3 = 36 to 55 y/o
# Age group 4 = 56 to 75 y/o (75 y/o, i.e, within the scope of the data we have, it can mean 60 and above also)
d0["age_rec"] = np.where( d0["Please mark your age (in years)"] == "18 - 25" , 2,
np.where(d0["Please mark your age (in years)"] == "25 - 35", 2,
np.where( d0["Please mark your age (in years)"] == "36 - 45", 3,
np.where( d0["Please mark your age (in years)"] == "46 - 55", 3,
np.where( d0["Please mark your age (in years)"] == "56 - 65", 4,
np.where( d0["Please mark your age (in years)"] == "Above 65", 4, 0
)
)
)
)
)
)
d0["age"] = np.where( d0["Please mark your age (in years)"] == "18 - 25" , (18 + 25) / 2,
np.where(d0["Please mark your age (in years)"] == "25 - 35", (26 + 35) / 2,
np.where( d0["Please mark your age (in years)"] == "36 - 45", (36 + 45) / 2,
np.where( d0["Please mark your age (in years)"] == "46 - 55", (46 + 55) / 2,
np.where( d0["Please mark your age (in years)"] == "56 - 65", (56 + 65) / 2,
np.where( d0["Please mark your age (in years)"] == "Above 65", (66 + 75) / 2, 0
)
)
)
)
)
)
# Secondary upto 10 – ISCED 3
# Senior Secondary upto 12 - ISCED 3
# Diploma and voca – ISCED 2
# UG – ISCED 2
# PG – ISCED 1
# PhD and higher – ISCED 1
d0["isced"] = np.where(d0["What is currently your highest Education?"] == "Post Graduate", 1,
np.where(d0["What is currently your highest Education?"] == "Under Graduate", 2,
np.where(d0["What is currently your highest Education?"] == "Ph.D. or higher", 1,
np.where(d0["What is currently your highest Education?"] == "Diploma or vocation training", 2,
np.where(d0["What is currently your highest Education?"] == "School degree (X or XII)", 3, 0
)
)
)
)
)
d0["income"] = np.where(d0["Please indicate your approximate annual personal income from all sources for last year"] == "< 5,00,000", 1,
np.where(d0["Please indicate your approximate annual personal income from all sources for last year"] == "5,00,000 - 15,00,000", 2,
np.where(d0["Please indicate your approximate annual personal income from all sources for last year"] == "15,00,001 - 25,00,000", 3,
np.where(d0["Please indicate your approximate annual personal income from all sources for last year"] == "25,00,001 - 35,00,000", 4,
np.where(d0["Please indicate your approximate annual personal income from all sources for last year"] == "35,00,001 - 45,00,000", 4,
np.where( d0["Please indicate your approximate annual personal income from all sources for last year"] == "> 45,00,000", 5,0
)
)
)
)
)
)
d0["wealth"] = d0["Please provide a rough guess (in Indian Rupees) of the worth of your household's assets. Please do not forget to correct it for your debts, such as a mortgage or any loans you might have."]
In [ ]:
Questions¶
In [6]:
matchCol = ["q8_2_1", "q8_2_2", "q8_2_3", "q8_2_4", "q8_2_5", "q8_3", "q8_4", "q8_5berlin_1",
"q8_5london_1", "q8_5paris_1", "q8_6", "q8_7", "q9_1_1", "q9_2_1", "q9_3",
"q10_1_1", "q10_2_1", "q10_3_1", "q10_4"]
d0[ matchCol ] = 0
In [7]:
d0.columns
Out[7]:
Index(['ResponseId', 'Please indicate your Gender.',
'Please mark your age (in years)',
'What is currently your highest Education?',
'Please state your current occupation.',
'How do you describe your willingness to take financial risk in general?',
'Given the number of years that you have held various investments and the amount of investing you might have done, what degree of investment experience in the stock market do you have?',
'If an expert tries to worry or scare me, i.e. a financial advisor about my financial situation, I choose another expert.',
'I only buy a financial product I understand.', 'I trust doctors.',
'When I want to buy a bigger item like a refrigerator or an expensive item of clothing, I wait a month to see whether I still want it and only buy it then.',
'I always keep in mind that everything I do on the web could be used to my disadvantage.',
'In my household, we/I spend:', 'In my household, we/I',
'_Distribution 1_\n\nHow risky do you perceive the investment to be?',
'_Distribution 2_\n\nHow risky do you perceive the investment to be?',
'_Distribution 3_\n\nHow risky do you perceive the investment to be?',
'_Distribution 4_\n\nHow risky do you perceive the investment to be?',
'_Distribution 5_\n\nHow risky do you perceive the investment to be?',
'Distribution 6\n\nHow risky do you perceive the investment to be?',
'Distribution 7\n\nHow risky do you perceive the investment to be?',
'Distribution 8\n\nHow risky do you perceive the investment to be?',
'*Mumbai * A = 9 out of 10000 *OR * B = 1 out of 1000',
'*Bengaluru * A = 0.7% *OR * B = 0.099%',
'*Kolkata * A = 0.61% *OR * B = 6 out of 10000', 'HIV test',
'Fingerprint', 'DNA test', 'Cancer screening test',
'Professional horoscope',
'A study estimates that eating 100g chocolate everyday increases the risk of obesity by 20%. Which of the following statements is true?',
'There is an official prediction that the national stock market will grow 2% annually over the next 5 years. This means that…',
'Imagine you are told that the price of the stock Soya Ruchi increases from INR 60 to INR 120 after the company merger. What does this mean?',
'It is predicted that Indigo Bank has 30% chance of default next year. Which of the following alternatives is the most appropriate interpretation of the statement?',
'The probability that the economy will go into a recession this year is 30%. If the economy goes into recession, the probability that the stock market will decrease is 80%. If the economy does not go into a recession, the probability that the stock market will decrease is 23%. What is the probability that the economy goes into recession given that the stock market decreased?',
'A new policy intervention increases the number of people who are employed by 20%. This statistic implies that the intervention increases the number of people who are employed from:',
'Imagine you are told that a new medication increases the number of people who recover from a disease from 2 out of 1,000 to 4 out of 1,000. This implies:',
'Imagine that we flip a fair coin 1,000 times. What is your best guess about how many times the coin will come up heads in 1,000 flips? \n\n\_\_\_\_\_\_ times out of 1,000.',
'In the Bingo Lottery, the chance of winning a $10 prize is 1%. What is your best guess about how many people will win a $10 prize if 1,000 people each buy a single ticket for Bingo Lottery?\n\n\_\_\_\_\_\_ person(s) out of 1,000.',
'In a sweepstakes, the chance of winning a car is 1 in 1,000. What percentage of tickets for the sweepstakes wins a car?\n\n\_\_\_\_\_ % of tickets',
'About 10 out of 1,000 children develop Down syndrome. In a Down syndrome test, 9 out of these 10 children with Down syndrome tested positive. Out of the 990 children without Down syndrome 50 nevertheless tested positive. Among those women with a positive test result concerning their child how many actually have a child with Down syndrome? [Select one response only]',
'Approximately what percentage (%) of people who die from cancer die from colon cancer, breast cancer, and prostate cancer taken together?',
'The following figure shows the number of men and women among a group of smartphone users. The total number of circles is 100. \n\nHow many more men than women are there among the 100 people using a smartphone?',
'In a magazine you see two advertisements, one on page 5 and another on page 12. Each is for a different drug for treating heart disease, and each includes a graph showing the effectiveness of the drug compared to a placebo (sugar pill).\n\nCompared to the placebo, which treatment leads to a larger decrease in the percentage of patients who die?',
'Please indicate your approximate annual personal income from all sources for last year',
'Please provide a rough guess (in Indian Rupees) of the worth of your household's assets. Please do not forget to correct it for your debts, such as a mortgage or any loans you might have.',
'uid', 'Response Type', 'Start Date (UTC)', 'Stage Date (UTC)',
'Submit Date (UTC)', 'Network ID', 'LTA', 'age_rec', 'age', 'isced',
'income', 'wealth', 'q8_2_1', 'q8_2_2', 'q8_2_3', 'q8_2_4', 'q8_2_5',
'q8_3', 'q8_4', 'q8_5berlin_1', 'q8_5london_1', 'q8_5paris_1', 'q8_6',
'q8_7', 'q9_1_1', 'q9_2_1', 'q9_3', 'q10_1_1', 'q10_2_1', 'q10_3_1',
'q10_4'],
dtype='object')
In [8]:
d0["HIV test"].value_counts()
Out[8]:
HIV test Yes 340 No 149 Name: count, dtype: int64
In [9]:
d0["q8_2_1"] = np.where(d0["HIV test"] == "Yes", 1, 2)
d0["q8_2_2"] = np.where(d0["Fingerprint"] == "Yes", 1, 2)
d0["q8_2_3"] = np.where(d0["DNA test"] == "Yes", 1, 2)
d0["q8_2_4"] = np.where(d0["Cancer screening test"] == "Yes", 1, 2)
d0["q8_2_5"] = np.where(d0["Professional horoscope"] == "Yes", 1, 2)
d0["q8_3"] = np.where(d0["A study estimates that eating 100g chocolate everyday increases the risk of obesity by 20%. Which of the following statements is true?"] == "The lower the quality of the study, the more likely that future studies will change the risk estimate.", 1,
np.where(d0["A study estimates that eating 100g chocolate everyday increases the risk of obesity by 20%. Which of the following statements is true?"] == "The higher the quality of the study, the more likely that future studies will change the risk estimate.", 2,
np.where(d0["A study estimates that eating 100g chocolate everyday increases the risk of obesity by 20%. Which of the following statements is true?"] == "Irrespective of the quality of the study, future studies will not change the risk estimate.", 3,
np.where(d0["A study estimates that eating 100g chocolate everyday increases the risk of obesity by 20%. Which of the following statements is true?"] == "Irrespective of the quality of the study, future studies will change the risk estimate substantially anyway.", 4,0
)
)
)
)
d0["q8_4"] = np.where(d0["There is an official prediction that the national stock market will grow 2% annually over the next 5 years. This means that…"] == "the growth rate will be 0.4% on average each year", 1,
np.where(d0["There is an official prediction that the national stock market will grow 2% annually over the next 5 years. This means that…"] == "the growth rate over five years will be exactly 2%", 2,
np.where(d0["There is an official prediction that the national stock market will grow 2% annually over the next 5 years. This means that…"] == "the growth rate over five years will be between 1% and 3%", 3,
np.where(d0["There is an official prediction that the national stock market will grow 2% annually over the next 5 years. This means that…"] == "it is not possible to predict the growth rate with certainty.", 4,0
)
)
)
)
In [10]:
d0["q8_5berlin_1"] = np.where(d0["*Mumbai * A = 9 out of 10000 *OR * B = 1 out of 1000"] == "A", 1, 2)
d0["q8_5london_1"] = np.where(d0["*Bengaluru * A = 0.7% *OR * B = 0.099%"] == "A", 1, 2)
d0["q8_5paris_1"] = np.where(d0["*Kolkata * A = 0.61% *OR * B = 6 out of 10000"] == "A", 1, 2)
d0["q8_6"] = np.where(d0["Imagine you are told that a new medication increases the number of people who recover from a disease from 2 out of 1,000 to 4 out of 1,000. This implies:"] == "The medication increases recovery by 100%", 1,
np.where(d0["Imagine you are told that a new medication increases the number of people who recover from a disease from 2 out of 1,000 to 4 out of 1,000. This implies:"] == "The medication increases recovery by 50%", 2,
np.where(d0["Imagine you are told that a new medication increases the number of people who recover from a disease from 2 out of 1,000 to 4 out of 1,000. This implies:"] == "The medication increases recovery by 2%", 3,
np.where(d0["Imagine you are told that a new medication increases the number of people who recover from a disease from 2 out of 1,000 to 4 out of 1,000. This implies:"] == "None of the above is implied.", 4, 0
)
)
)
)
d0["q8_7"] = np.where(d0["A new policy intervention increases the number of people who are employed by 20%. This statistic implies that the intervention increases the number of people who are employed from:"] == "5 in 100 people prior to the intervention to 6 out of 100 people after the intervention", 1,
np.where(d0["A new policy intervention increases the number of people who are employed by 20%. This statistic implies that the intervention increases the number of people who are employed from:"] == "100 in 10,000 people prior to the intervention to 120 out of 10,000 people after the intervention", 2,
np.where(d0["A new policy intervention increases the number of people who are employed by 20%. This statistic implies that the intervention increases the number of people who are employed from:"] == "70 in 100 people prior to the intervention to 90 out of 100 people after the intervention", 3,
np.where(d0["A new policy intervention increases the number of people who are employed by 20%. This statistic implies that the intervention increases the number of people who are employed from:"] == "it is not possible to determine which of the answers is correct given the information provided", 4, 0
)
)
)
)
d0["q9_1_1"] = d0["Approximately what percentage (%) of people who die from cancer die from colon cancer, breast cancer, and prostate cancer taken together?"].copy()
d0["q9_2_1"] = d0["The following figure shows the number of men and women among a group of smartphone users. The total number of circles is 100. \n\nHow many more men than women are there among the 100 people using a smartphone?"].copy()
d0["q9_3"] = np.where(d0["In a magazine you see two advertisements, one on page 5 and another on page 12. Each is for a different drug for treating heart disease, and each includes a graph showing the effectiveness of the drug compared to a placebo (sugar pill).\n\nCompared to the placebo, which treatment leads to a larger decrease in the percentage of patients who die?"] == "Crosicol", 1,
np.where(d0["In a magazine you see two advertisements, one on page 5 and another on page 12. Each is for a different drug for treating heart disease, and each includes a graph showing the effectiveness of the drug compared to a placebo (sugar pill).\n\nCompared to the placebo, which treatment leads to a larger decrease in the percentage of patients who die?"] == "Hertinol", 2,
np.where(d0["In a magazine you see two advertisements, one on page 5 and another on page 12. Each is for a different drug for treating heart disease, and each includes a graph showing the effectiveness of the drug compared to a placebo (sugar pill).\n\nCompared to the placebo, which treatment leads to a larger decrease in the percentage of patients who die?"] == "They are equal", 3,
np.where(d0["In a magazine you see two advertisements, one on page 5 and another on page 12. Each is for a different drug for treating heart disease, and each includes a graph showing the effectiveness of the drug compared to a placebo (sugar pill).\n\nCompared to the placebo, which treatment leads to a larger decrease in the percentage of patients who die?"] == "Can’t say", 4, 0
)
)
)
)
In [11]:
d0["q10_1_1"] = d0["Imagine that we flip a fair coin 1,000 times. What is your best guess about how many times the coin will come up heads in 1,000 flips? \n\n\_\_\_\_\_\_ times out of 1,000."].copy()
d0["q10_2_1"] = d0["In the Bingo Lottery, the chance of winning a $10 prize is 1%. What is your best guess about how many people will win a $10 prize if 1,000 people each buy a single ticket for Bingo Lottery?\n\n\_\_\_\_\_\_ person(s) out of 1,000."].copy()
d0["q10_3_1"] = d0["In a sweepstakes, the chance of winning a car is 1 in 1,000. What percentage of tickets for the sweepstakes wins a car?\n\n\_\_\_\_\_ % of tickets"].copy()
d0["q10_4"] = np.where(d0["About 10 out of 1,000 children develop Down syndrome. In a Down syndrome test, 9 out of these 10 children with Down syndrome tested positive. Out of the 990 children without Down syndrome 50 nevertheless tested positive. Among those women with a positive test result concerning their child how many actually have a child with Down syndrome? [Select one response only]"] == "9 out of 59", 1,
np.where(d0["About 10 out of 1,000 children develop Down syndrome. In a Down syndrome test, 9 out of these 10 children with Down syndrome tested positive. Out of the 990 children without Down syndrome 50 nevertheless tested positive. Among those women with a positive test result concerning their child how many actually have a child with Down syndrome? [Select one response only]"] == "9 out of 10", 2,
np.where(d0["About 10 out of 1,000 children develop Down syndrome. In a Down syndrome test, 9 out of these 10 children with Down syndrome tested positive. Out of the 990 children without Down syndrome 50 nevertheless tested positive. Among those women with a positive test result concerning their child how many actually have a child with Down syndrome? [Select one response only]"] == "59 out of 1000", 3,
np.where(d0["About 10 out of 1,000 children develop Down syndrome. In a Down syndrome test, 9 out of these 10 children with Down syndrome tested positive. Out of the 990 children without Down syndrome 50 nevertheless tested positive. Among those women with a positive test result concerning their child how many actually have a child with Down syndrome? [Select one response only]"] == "59 out of 100", 4, 0
)
)
)
)
Scoring¶
In [ ]:
In [12]:
scoreColumns = ["certainty1", "certainty2", "certainty3", "certainty4", "certainty5", "uncertainty1", "uncertainty2", "numeracy1", "numeracy2", "numeracy3", "numeracy4", "numeracy5", "graph1", "graph2", "graph3", "riskcomprehension1", "riskcomprehension2", "riskcomprehension3", "riskcomprehension4", "riskcomprehension5", "bayesian1"]
d0[scoreColumns] = 0
In [13]:
# Assigning scores
def scoring1(surveyFacet):
surveyFacet.loc[ surveyFacet["q8_2_1"] == 2, "certainty1"] = 1
surveyFacet.loc[ surveyFacet["q8_2_2"] == 2, "certainty2"] = 1
surveyFacet.loc[ surveyFacet["q8_2_3"] == 2, "certainty3"] = 1
surveyFacet.loc[ surveyFacet["q8_2_4"] == 2, "certainty4"] = 1
surveyFacet.loc[ surveyFacet["q8_2_5"] == 2, "certainty5"] = 1
surveyFacet.loc[ surveyFacet["q8_3"] == 1, "uncertainty1"] = 1
surveyFacet.loc[ surveyFacet["q8_4"] == 4, "uncertainty2"] = 1
surveyFacet.loc[ surveyFacet["q8_5berlin_1"] == 2, "riskcomprehension1"] = 1
surveyFacet.loc[ surveyFacet["q8_5london_1"] == 1, "riskcomprehension2"] = 1
surveyFacet.loc[ surveyFacet["q8_5paris_1"] == 1, "riskcomprehension3"] = 1
surveyFacet.loc[ surveyFacet["q8_6"] == 1, "riskcomprehension4"] = 1
surveyFacet.loc[ surveyFacet["q8_7"] == 4, "riskcomprehension5"] = 1
surveyFacet.loc[ surveyFacet["q9_1_1"] == 25, "graph1"] = 1
surveyFacet.loc[ surveyFacet["q9_2_1"] == 20, "graph2"] = 1
surveyFacet.loc[ surveyFacet["q9_3"] == 3, "graph3"] = 1
surveyFacet.loc[ surveyFacet["q10_1_1"] == 500, "numeracy1"] = 1
surveyFacet.loc[ surveyFacet["q10_2_1"] == 10, "numeracy2"] = 1
surveyFacet.loc[ (surveyFacet["q10_3_1"] == 0.1) | (surveyFacet["q10_3_1"] == ".1") | (surveyFacet["q10_3_1"] == ",1") , "numeracy3"] = 1
surveyFacet.loc[ surveyFacet["q10_4"] == 1, "bayesian1"] = 1
# Assigning total scores
# surveyFacet["Certainty score_5"] = surveyFacet["certainty1"] + surveyFacet["certainty2"] + surveyFacet["certainty3"] + surveyFacet["certainty4"] + surveyFacet["certainty5"]
#surveyFacet["Uncertainty score_5"] = surveyFacet["uncertainty1"] + surveyFacet["uncertainty2"]
#surveyFacet["Number Comprehension score_5"] = surveyFacet["numeracy1"] + surveyFacet["numeracy2"] + surveyFacet["numeracy3"] + surveyFacet["numeracy4"] + surveyFacet["numeracy5"]
#surveyFacet["Graph Comprehension score_5"] = surveyFacet["graph1"] + surveyFacet["graph2"] + surveyFacet["graph3"]
#surveyFacet["Calculation score_4"] = surveyFacet["riskcalculation1"] + surveyFacet["riskcalculation2"] + surveyFacet["riskcalculation3"] + surveyFacet["riskcalculation4"]
#surveyFacet["Total Score_19"] = surveyFacet["Certainty score_5"] + surveyFacet["Uncertainty score_5"] + surveyFacet["Number Comprehension score_5"] + surveyFacet["Graph Comprehension score_5"] + surveyFacet["Calculation score_4"]
return surveyFacet
In [14]:
d0 = d0.groupby(["ResponseId"]).progress_apply(scoring1)
d0
100%|███████████████████████████████████████████████████████████████████████████████| 489/489 [00:02<00:00, 167.29it/s]
Out[14]:
| ResponseId | Please indicate your Gender. | Please mark your age (in years) | What is currently your highest Education? | Please state your current occupation. | How do you describe your willingness to take financial risk in general? | Given the number of years that you have held various investments and the amount of investing you might have done, what degree of investment experience in the stock market do you have? | If an expert tries to worry or scare me, i.e. a financial advisor about my financial situation, I choose another expert. | I only buy a financial product I understand. | I trust doctors. | When I want to buy a bigger item like a refrigerator or an expensive item of clothing, I wait a month to see whether I still want it and only buy it then. | I always keep in mind that everything I do on the web could be used to my disadvantage. | In my household, we/I spend: | In my household, we/I | _Distribution 1_\n\nHow risky do you perceive the investment to be? | _Distribution 2_\n\nHow risky do you perceive the investment to be? | _Distribution 3_\n\nHow risky do you perceive the investment to be? | _Distribution 4_\n\nHow risky do you perceive the investment to be? | _Distribution 5_\n\nHow risky do you perceive the investment to be? | Distribution 6\n\nHow risky do you perceive the investment to be? | Distribution 7\n\nHow risky do you perceive the investment to be? | Distribution 8\n\nHow risky do you perceive the investment to be? | *Mumbai * A = 9 out of 10000 *OR * B = 1 out of 1000 | *Bengaluru * A = 0.7% *OR * B = 0.099% | *Kolkata * A = 0.61% *OR * B = 6 out of 10000 | HIV test | Fingerprint | DNA test | Cancer screening test | Professional horoscope | A study estimates that eating 100g chocolate everyday increases the risk of obesity by 20%. Which of the following statements is true? | There is an official prediction that the national stock market will grow 2% annually over the next 5 years. This means that… | Imagine you are told that the price of the stock Soya Ruchi increases from INR 60 to INR 120 after the company merger. What does this mean? | It is predicted that Indigo Bank has 30% chance of default next year. Which of the following alternatives is the most appropriate interpretation of the statement? | The probability that the economy will go into a recession this year is 30%. If the economy goes into recession, the probability that the stock market will decrease is 80%. If the economy does not go into a recession, the probability that the stock market will decrease is 23%. What is the probability that the economy goes into recession given that the stock market decreased? | A new policy intervention increases the number of people who are employed by 20%. This statistic implies that the intervention increases the number of people who are employed from: | Imagine you are told that a new medication increases the number of people who recover from a disease from 2 out of 1,000 to 4 out of 1,000. This implies: | Imagine that we flip a fair coin 1,000 times. What is your best guess about how many times the coin will come up heads in 1,000 flips? \n\n\_\_\_\_\_\_ times out of 1,000. | In the Bingo Lottery, the chance of winning a $10 prize is 1%. What is your best guess about how many people will win a $10 prize if 1,000 people each buy a single ticket for Bingo Lottery?\n\n\_\_\_\_\_\_ person(s) out of 1,000. | In a sweepstakes, the chance of winning a car is 1 in 1,000. What percentage of tickets for the sweepstakes wins a car?\n\n\_\_\_\_\_ % of tickets | About 10 out of 1,000 children develop Down syndrome. In a Down syndrome test, 9 out of these 10 children with Down syndrome tested positive. Out of the 990 children without Down syndrome 50 nevertheless tested positive. Among those women with a positive test result concerning their child how many actually have a child with Down syndrome? [Select one response only] | Approximately what percentage (%) of people who die from cancer die from colon cancer, breast cancer, and prostate cancer taken together? | The following figure shows the number of men and women among a group of smartphone users. The total number of circles is 100. \n\nHow many more men than women are there among the 100 people using a smartphone? | In a magazine you see two advertisements, one on page 5 and another on page 12. Each is for a different drug for treating heart disease, and each includes a graph showing the effectiveness of the drug compared to a placebo (sugar pill).\n\nCompared to the placebo, which treatment leads to a larger decrease in the percentage of patients who die? | Please indicate your approximate annual personal income from all sources for last year | Please provide a rough guess (in Indian Rupees) of the worth of your household's assets. Please do not forget to correct it for your debts, such as a mortgage or any loans you might have. | uid | Response Type | Start Date (UTC) | Stage Date (UTC) | Submit Date (UTC) | Network ID | LTA | age_rec | age | isced | income | wealth | q8_2_1 | q8_2_2 | q8_2_3 | q8_2_4 | q8_2_5 | q8_3 | q8_4 | q8_5berlin_1 | q8_5london_1 | q8_5paris_1 | q8_6 | q8_7 | q9_1_1 | q9_2_1 | q9_3 | q10_1_1 | q10_2_1 | q10_3_1 | q10_4 | certainty1 | certainty2 | certainty3 | certainty4 | certainty5 | uncertainty1 | uncertainty2 | numeracy1 | numeracy2 | numeracy3 | numeracy4 | numeracy5 | graph1 | graph2 | graph3 | riskcomprehension1 | riskcomprehension2 | riskcomprehension3 | riskcomprehension4 | riskcomprehension5 | bayesian1 | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ResponseId | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 00ujdxbfoya0donu8r00ujcjdkojc99x | 428 | 00ujdxbfoya0donu8r00ujcjdkojc99x | Female | 25 - 35 | Under Graduate | Employee/Consultant in Other than the Finance ... | 7 | 8 | Completely | Completely | Completely | Moderately | Moderately | less than half of the household income and sav... | write down budget and spending, and have an em... | 2 | 1 | 1 | 1 | 0 | 2 | 0 | 0 | B | B | A | Yes | Yes | Yes | Yes | No | The higher the quality of the study, the more ... | the growth rate over five years will be betwee... | the stock price increased by 50% | The bank will default on 30% of repayments in ... | 50% | 100 in 10,000 people prior to the intervention... | The medication increases recovery by 50% | 500 | 100 | 1 | 59 out of 1000 | 50 | 10 | They are equal | < 5,00,000 | 1500000 | MXic21725178744djB | completed | 2024-09-01 08:23:04 | NaN | 2024-09-01 09:24:44 | 1c1d51349c | 42.824074 | 2 | 30.5 | 2 | 1 | 1500000 | 1 | 1 | 1 | 1 | 2 | 2 | 3 | 2 | 2 | 1 | 2 | 2 | 50 | 10 | 3 | 500 | 100 | 1 | 3 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 |
| 01ro2iftnum5v4cn01r03c75aa24emhq | 528 | 01ro2iftnum5v4cn01r03c75aa24emhq | Female | 18 - 25 | Under Graduate | Student | 5 | 8 | Just about | Completely | Completely | Completely | Just about | more than half of the household income and sav... | write down budget and spending, and have an em... | 6 | 6 | 2 | 6 | 6 | 6 | 2 | 4 | A | B | B | Yes | Yes | No | Yes | Yes | The lower the quality of the study, the more l... | the growth rate over five years will be exactl... | an answer is not possible based on the informa... | Banks similar to Indigo will default 30% of th... | 50% | 70 in 100 people prior to the intervention to ... | The medication increases recovery by 100% | 46 | 100 | 99 | 59 out of 1000 | 79 | 40 | Hertinol | 5,00,000 - 15,00,000 | 500000 | MX7wI1724844822zNm | completed | 2024-08-28 11:36:50 | NaN | 2024-08-28 11:51:07 | 81a8a6836a | 9.918981 | 2 | 21.5 | 2 | 2 | 500000 | 1 | 1 | 2 | 1 | 1 | 1 | 2 | 1 | 2 | 2 | 1 | 3 | 79 | 40 | 2 | 46 | 100 | 99 | 3 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
| 022xoawhrghfhv4a1g022xmz7hb0m41f | 442 | 022xoawhrghfhv4a1g022xmz7hb0m41f | Female | 46 - 55 | Under Graduate | Entrepreneur or Own Business | 5 | 4 | Somewhat | Somewhat | Moderately | Just about | Somewhat | all or more than the household income, even th... | spend as it feel right, and do not have an eme... | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | B | A | B | Yes | Yes | Yes | No | No | The lower the quality of the study, the more l... | the growth rate will be 0.4% on average each year | the stock price increased by 60% | 30% of the banks customers will default next year | 80% | 5 in 100 people prior to the intervention to 6... | The medication increases recovery by 2% | 500 | 1 | 1 | 59 out of 1000 | 17 | 65 | They are equal | < 5,00,000 | 15000000 | MXFDH1725178659xRn | completed | 2024-09-01 08:21:14 | NaN | 2024-09-01 08:33:49 | fbd8962401 | 8.738426 | 3 | 50.5 | 2 | 1 | 15000000 | 1 | 1 | 1 | 2 | 2 | 1 | 1 | 2 | 1 | 2 | 3 | 1 | 17 | 65 | 3 | 500 | 1 | 1 | 3 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
| 02pxtdbyibecqqfvwlw02pxwfbane9zd | 558 | 02pxtdbyibecqqfvwlw02pxwfbane9zd | Female | 46 - 55 | Post Graduate | Employee/Consultant in Other than the Finance ... | 6 | 10 | Not at all | Completely | Completely | Completely | Moderately | all or more than the household income, even th... | have an emergency fund, and spend as it feels ... | 5 | 5 | 6 | 5 | 7 | 5 | 0 | 5 | B | A | A | Yes | Yes | Yes | No | Yes | The higher the quality of the study, the more ... | it is not possible to predict the growth rate ... | an answer is not possible based on the informa... | 30% of the banks customers will default next year | 30% | 5 in 100 people prior to the intervention to 6... | None of the above is implied. | 1000 | 1 | 100 | 9 out of 10 | 20 | 20 | Can’t say | 5,00,000 - 15,00,000 | 3000000 | MXIpM1724844742xet | completed | 2024-08-28 11:35:05 | NaN | 2024-08-28 11:48:47 | e8b668d11b | 9.513889 | 3 | 50.5 | 1 | 2 | 3000000 | 1 | 1 | 1 | 2 | 1 | 2 | 4 | 2 | 1 | 1 | 4 | 1 | 20 | 20 | 4 | 1000 | 1 | 100 | 2 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 0 |
| 037aefjdt26mnjd102nz0pk037aedfhc | 544 | 037aefjdt26mnjd102nz0pk037aedfhc | Male | 46 - 55 | Post Graduate | Employee/Consultant in Other than the Finance ... | 3 | 6 | Somewhat | Somewhat | Somewhat | Somewhat | Somewhat | more than half of the household income and sav... | write down budget and spending, but have no em... | 3 | 1 | 6 | 1 | 2 | 6 | 7 | 5 | A | B | A | No | No | Yes | No | No | Irrespective of the quality of the study, futu... | it is not possible to predict the growth rate ... | an answer is not possible based on the informa... | Banks similar to Indigo will default 30% of th... | 60% | 70 in 100 people prior to the intervention to ... | None of the above is implied. | 1000 | 1 | 10 | 9 out of 59 | 50 | 20 | Hertinol | 5,00,000 - 15,00,000 | 7000000 | MXpv61724844846UVs | completed | 2024-08-28 11:35:50 | NaN | 2024-08-28 11:45:54 | f51b723011 | 6.990741 | 3 | 50.5 | 1 | 2 | 7000000 | 2 | 2 | 1 | 2 | 2 | 3 | 4 | 1 | 2 | 1 | 4 | 3 | 50 | 20 | 2 | 1000 | 1 | 10 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| zcj7ldokhyo6217f9sriwizcj7ldodwt | 268 | zcj7ldokhyo6217f9sriwizcj7ldodwt | Female | 36 - 45 | Under Graduate | Entrepreneur or Own Business | 5 | 8 | Completely | Completely | Completely | Not at all | Moderately | less than half of the household income and sav... | write down budget and spending, and have an em... | 2 | 0 | 7 | 5 | 5 | 7 | 0 | 4 | A | B | A | No | Yes | Yes | No | No | The higher the quality of the study, the more ... | it is not possible to predict the growth rate ... | the stock price increased by 100% | Banks similar to Indigo will default 30% of th... | 80% | it is not possible to determine which of the a... | The medication increases recovery by 2% | 500 | 10 | 1 | 9 out of 59 | 25 | 60 | Hertinol | 15,00,001 - 25,00,000 | 600000000 | MX6PC1725259690mDV | completed | 2024-09-02 06:53:29 | NaN | 2024-09-02 07:28:48 | 237c2e5291 | 24.525463 | 3 | 40.5 | 2 | 3 | 600000000 | 2 | 1 | 1 | 2 | 2 | 2 | 4 | 1 | 2 | 1 | 3 | 4 | 25 | 60 | 2 | 500 | 10 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 |
| zfemo30rg0ekva18x1kjwzfemo2wpg2p | 185 | zfemo30rg0ekva18x1kjwzfemo2wpg2p | Male | 36 - 45 | Ph.D. or higher | Employee/Consultant in Other than the Finance ... | 6 | 8 | Not at all | Moderately | Just about | Not at all | Not at all | less than half of the household income and sav... | have an emergency fund, and spend as it feels ... | 3 | 1 | 4 | 2 | 0 | 5 | 0 | 2 | B | A | A | No | Yes | Yes | No | No | Irrespective of the quality of the study, futu... | the growth rate over five years will be betwee... | the stock price increased by 100% | 30% of central bankers think that Indigo Bank ... | 30% | 100 in 10,000 people prior to the intervention... | The medication increases recovery by 100% | 500 | 10 | 1 | 59 out of 1000 | 25 | 20 | Can’t say | 15,00,001 - 25,00,000 | 8500000 | MXUxt1725260651heG | completed | 2024-09-02 07:08:18 | NaN | 2024-09-02 07:23:09 | fbb956cffc | 10.312500 | 3 | 40.5 | 1 | 3 | 8500000 | 2 | 1 | 1 | 2 | 2 | 4 | 3 | 2 | 1 | 1 | 1 | 2 | 25 | 20 | 4 | 500 | 10 | 1 | 3 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 0 |
| znqvw4t38br3072znqvwvjsgb6wvj7nt | 305 | znqvw4t38br3072znqvwvjsgb6wvj7nt | Female | 36 - 45 | Post Graduate | Entrepreneur or Own Business | 5 | 5 | Somewhat | Completely | Just about | Moderately | Somewhat | less than half of the household income and sav... | spend as it feel right, and do not have an eme... | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | B | B | B | Yes | Yes | Yes | No | No | Irrespective of the quality of the study, futu... | it is not possible to predict the growth rate ... | the stock price increased by 50% | 30% of the banks customers will default next year | 80% | it is not possible to determine which of the a... | The medication increases recovery by 2% | 500 | 10 | 1 | 9 out of 59 | 25 | 20 | Hertinol | 5,00,000 - 15,00,000 | 2000000 | MXd921725259652XDJ | completed | 2024-09-02 06:49:56 | NaN | 2024-09-02 07:17:20 | 1964f49e1c | 19.027778 | 3 | 40.5 | 1 | 2 | 2000000 | 1 | 1 | 1 | 2 | 2 | 3 | 4 | 2 | 2 | 2 | 3 | 4 | 25 | 20 | 2 | 500 | 10 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 1 |
| zstpq23h1x3ilab8s8vsrbkw8t4zstpq | 306 | zstpq23h1x3ilab8s8vsrbkw8t4zstpq | Male | 18 - 25 | Under Graduate | Entrepreneur or Own Business | 6 | 9 | Completely | Completely | Moderately | Completely | Moderately | all or more than our household income, because... | have an emergency fund, and spend as it feels ... | 6 | 3 | 7 | 1 | 2 | 7 | 7 | 3 | A | A | B | No | Yes | Yes | No | No | The higher the quality of the study, the more ... | the growth rate over five years will be betwee... | the stock price increased by 60% | Banks similar to Indigo will default 30% of th... | 80% | 5 in 100 people prior to the intervention to 6... | None of the above is implied. | 750 | 10 | 1 | 59 out of 1000 | 50 | 10 | They are equal | 5,00,000 - 15,00,000 | 60000000 | MXfmg1725259705Fkj | completed | 2024-09-02 06:49:52 | NaN | 2024-09-02 07:01:04 | 03aa77ec48 | 7.777778 | 2 | 21.5 | 2 | 2 | 60000000 | 2 | 1 | 1 | 2 | 2 | 2 | 3 | 1 | 1 | 2 | 4 | 1 | 50 | 10 | 3 | 750 | 10 | 1 | 3 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 |
| ztfdlcbiyo1xco3ztfdl4ozqpte2q3m9 | 95 | ztfdlcbiyo1xco3ztfdl4ozqpte2q3m9 | Male | 25 - 35 | Post Graduate | Entrepreneur or Own Business | 6 | 7 | Somewhat | Just about | Completely | Moderately | Somewhat | more than half of the household income and sav... | spend as it feel right, and do not have an eme... | 6 | 0 | 2 | 5 | 3 | 7 | 0 | 4 | B | A | A | No | Yes | Yes | Yes | Yes | The higher the quality of the study, the more ... | it is not possible to predict the growth rate ... | the stock price increased by 100% | 30% of central bankers think that Indigo Bank ... | 80% | 5 in 100 people prior to the intervention to 6... | The medication increases recovery by 2% | 500 | 10 | 1 | 59 out of 1000 | 25 | 60 | Can’t say | 15,00,001 - 25,00,000 | 5000000 | MXjp51725955476hMt | completed | 2024-09-10 08:06:34 | NaN | 2024-09-10 08:16:35 | f68294192e | 6.956019 | 2 | 30.5 | 1 | 3 | 5000000 | 2 | 1 | 1 | 1 | 1 | 2 | 4 | 2 | 1 | 1 | 3 | 1 | 25 | 60 | 4 | 500 | 10 | 1 | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0 |
489 rows × 98 columns
In [ ]:
In [15]:
def scoring2(survey):
survey["Certainty_5"] = survey["certainty1"] + survey["certainty2"] + survey["certainty3"] + survey["certainty4"] + survey["certainty5"]
survey["Uncertainty_2"] = survey["uncertainty1"] + survey["uncertainty2"]
survey["RiskComprehension_5"] = survey["riskcomprehension1"] + survey["riskcomprehension2"] + survey["riskcomprehension3"] + survey["riskcomprehension4"] + survey["riskcomprehension5"]
survey["GraphLiteracy_3"] = survey["graph1"] + survey["graph2"] + survey["graph3"]
survey["Numeracy_2"] = survey["numeracy1"] + survey["numeracy2"] # + survey["numeracy3"]
survey["Bayesianreasoning_1"] = survey["bayesian1"]
survey["TotalScore_18"] = survey["Certainty_5"] + survey["Uncertainty_2"] + survey["RiskComprehension_5"] + survey["GraphLiteracy_3"] + survey["Numeracy_2"] + survey["Bayesianreasoning_1"]
survey["Certainty_%"] = survey["Certainty_5"] / 5 * 100
survey["Uncertainty_%"] = survey["Uncertainty_2"] / 2 * 100
survey["RiskComprehension_%"] = survey["RiskComprehension_5"] / 5 * 100
survey["GraphLiteracy_%"] = survey["GraphLiteracy_3"] / 3 * 100
survey["Numeracy_%"] = survey["Numeracy_2"] / 2 * 100
survey["Bayesianreasoning_%"] = survey["Bayesianreasoning_1"] / 1 * 100
survey["TotalScore_%"] = survey["TotalScore_18"] / 18 * 100
colReq = ["ResponseId", "age", "age_rec", "isced", "income", "wealth", "Certainty_5", "Uncertainty_2", "RiskComprehension_5", "GraphLiteracy_3",
"Numeracy_2", "Bayesianreasoning_1", "Certainty_%", "Uncertainty_%", "RiskComprehension_%", "GraphLiteracy_%", "Numeracy_%", "Bayesianreasoning_%",
"TotalScore_18", "TotalScore_%",]
survey1 = survey[colReq].copy()
return survey1
In [16]:
d01 = scoring2(d0)
d01
Out[16]:
| ResponseId | age | age_rec | isced | income | wealth | Certainty_5 | Uncertainty_2 | RiskComprehension_5 | GraphLiteracy_3 | Numeracy_2 | Bayesianreasoning_1 | Certainty_% | Uncertainty_% | RiskComprehension_% | GraphLiteracy_% | Numeracy_% | Bayesianreasoning_% | TotalScore_18 | TotalScore_% | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ResponseId | |||||||||||||||||||||
| 00ujdxbfoya0donu8r00ujcjdkojc99x | 428 | 00ujdxbfoya0donu8r00ujcjdkojc99x | 30.5 | 2 | 2 | 1 | 1500000 | 1 | 0 | 2 | 1 | 1 | 0 | 20.0 | 0.0 | 40.0 | 33.333333 | 50.0 | 0.0 | 5 | 27.777778 |
| 01ro2iftnum5v4cn01r03c75aa24emhq | 528 | 01ro2iftnum5v4cn01r03c75aa24emhq | 21.5 | 2 | 2 | 2 | 500000 | 1 | 1 | 1 | 0 | 0 | 0 | 20.0 | 50.0 | 20.0 | 0.000000 | 0.0 | 0.0 | 3 | 16.666667 |
| 022xoawhrghfhv4a1g022xmz7hb0m41f | 442 | 022xoawhrghfhv4a1g022xmz7hb0m41f | 50.5 | 3 | 2 | 1 | 15000000 | 2 | 1 | 2 | 1 | 1 | 0 | 40.0 | 50.0 | 40.0 | 33.333333 | 50.0 | 0.0 | 7 | 38.888889 |
| 02pxtdbyibecqqfvwlw02pxwfbane9zd | 558 | 02pxtdbyibecqqfvwlw02pxwfbane9zd | 50.5 | 3 | 1 | 2 | 3000000 | 1 | 1 | 3 | 1 | 0 | 0 | 20.0 | 50.0 | 60.0 | 33.333333 | 0.0 | 0.0 | 6 | 33.333333 |
| 037aefjdt26mnjd102nz0pk037aedfhc | 544 | 037aefjdt26mnjd102nz0pk037aedfhc | 50.5 | 3 | 1 | 2 | 7000000 | 4 | 1 | 1 | 1 | 0 | 1 | 80.0 | 50.0 | 20.0 | 33.333333 | 0.0 | 100.0 | 8 | 44.444444 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| zcj7ldokhyo6217f9sriwizcj7ldodwt | 268 | zcj7ldokhyo6217f9sriwizcj7ldodwt | 40.5 | 3 | 2 | 3 | 600000000 | 3 | 1 | 2 | 1 | 2 | 1 | 60.0 | 50.0 | 40.0 | 33.333333 | 100.0 | 100.0 | 10 | 55.555556 |
| zfemo30rg0ekva18x1kjwzfemo2wpg2p | 185 | zfemo30rg0ekva18x1kjwzfemo2wpg2p | 40.5 | 3 | 1 | 3 | 8500000 | 3 | 0 | 4 | 2 | 2 | 0 | 60.0 | 0.0 | 80.0 | 66.666667 | 100.0 | 0.0 | 11 | 61.111111 |
| znqvw4t38br3072znqvwvjsgb6wvj7nt | 305 | znqvw4t38br3072znqvwvjsgb6wvj7nt | 40.5 | 3 | 1 | 2 | 2000000 | 2 | 1 | 2 | 2 | 2 | 1 | 40.0 | 50.0 | 40.0 | 66.666667 | 100.0 | 100.0 | 10 | 55.555556 |
| zstpq23h1x3ilab8s8vsrbkw8t4zstpq | 306 | zstpq23h1x3ilab8s8vsrbkw8t4zstpq | 21.5 | 2 | 2 | 2 | 60000000 | 3 | 0 | 1 | 1 | 1 | 0 | 60.0 | 0.0 | 20.0 | 33.333333 | 50.0 | 0.0 | 6 | 33.333333 |
| ztfdlcbiyo1xco3ztfdl4ozqpte2q3m9 | 95 | ztfdlcbiyo1xco3ztfdl4ozqpte2q3m9 | 30.5 | 2 | 1 | 3 | 5000000 | 1 | 1 | 3 | 1 | 2 | 0 | 20.0 | 50.0 | 60.0 | 33.333333 | 100.0 | 0.0 | 8 | 44.444444 |
489 rows × 20 columns
In [ ]:
In [ ]:
BeSample Data¶
In [17]:
d1 = pd.read_csv('Indian Risk Survey_Besample_Filtered_12_2024.csv')
d11 = d1.iloc[:, 19:62].copy()
d11.insert(0, "ResponseId",0)
d11["ResponseId"] = d1["ResponseId"].copy()
d11 = d11.loc[ (d11["Q4"] != "Stock analyst") & (d11["Q4"] != "Insurance agent, etc") & (d11["Q4"] != "Venture capital/private equity")]
In [18]:
d11["Q4"].value_counts()
Out[18]:
Q4 Salaried/Employee/Consultant in a sector other than Finance 167 Student 100 Not employed 50 Entrepreneur/Business Owner in a sector other than Finance 30 Retired 3 Name: count, dtype: int64
In [19]:
d11["age"] = d11["Q2"]
# Age groups/rec = [2,3,4]
# Age group 2 = 18 to 35 y/o
# Age group 3 = 36 to 55 y/o
# Age group 4 = 56 to 75 y/o (75 y/o, i.e, within the scope of the data we have, it can mean 60 and above also)
d11["age_rec"] = np.where( (d11["age"] >= 18) & (d11["age"] <= 35), 2,
np.where( (d11["age"] >= 36) & (d11["age"] <= 55), 3,
np.where( (d11["age"] >= 56), 4, 0
)
)
)
# Secondary upto 10 – ISCED 3
# Senior Secondary upto 12 - ISCED 3
# Diploma and voca – ISCED 2
# UG – ISCED 2
# PG – ISCED 1
# PhD and higher – ISCED 1
d11["isced"] = np.where(d11["Q3"] == "Post-Graduate Program", 1,
np.where(d11["Q3"] == "Undergraduate Program", 2,
np.where(d11["Q3"] == "Ph.D. and higher", 1,
np.where(d11["Q3"] == "Diploma and Vocational Training", 2,
np.where(d11["Q3"] == "Secondary School (11th to 12th Std.)", 3,
np.where( d11["Q3"] == "Primary School (up to 10th Std.)", 3,
np.where( d11["Q3"] == "M.Phil.", 1, 0
)
)
)
)
)
)
)
d11["income"] = np.where(d11["Q15a"] == "< INR 500,000", 1,
np.where(d11["Q15a"] == "INR 500,001 – INR 15,00,000", 2,
np.where(d11["Q15a"] == "INR 1500,001 – INR 30,00,000", 3,
np.where(d11["Q15a"] == "INR 30,00,001 – INR 50,00,000", 4,
np.where(d11["Q15a"] == "INR 50,00,001 – INR 75,00,000", 5,
np.where( d11["Q15a"] == "> INR 75,00,000", 5,0
)
)
)
)
)
)
d11["wealth"] = d11["Q14b.1"]
Scoring¶
In [20]:
matchCol = ["q8_2_1", "q8_2_2", "q8_2_3", "q8_2_4", "q8_2_5", "q8_3", "q8_4", "q8_5berlin_1",
"q8_5london_1", "q8_5paris_1", "q8_6", "q8_7", "q9_1_1", "q9_2_1", "q9_3",
"q10_1_1", "q10_2_1", "q10_3_1", "q10_4"]
d11[ matchCol ] = 0
d11.columns
Out[20]:
Index(['ResponseId', 'Q0', 'Q1', 'Q2', 'Q3', 'Q4', 'Q5_1', 'Q6_1', 'Q8_1',
'Q8_2', 'Q8_3', 'Q8_4', 'Q8_5', 'Q8_6', 'Q8_7', 'Q8_8', 'Q9b_1',
'Q9b_4', 'Q9b_5', 'Q9b_6', 'Q9b_7', 'Q9b_8', 'Q9b_9', 'Q11a_1',
'Q11a_2', 'Q11a_3', 'Q11b', 'Q11c', 'Q11d', 'Q11h', 'Attention Check',
'Q11i', 'Q12a', 'Q12b', 'Q12c', 'Q13a', 'Q13b', 'Q13c', 'Q13d', 'Q14a',
'Q14b', 'Q14c', 'Q15a', 'Q14b.1', 'age', 'age_rec', 'isced', 'income',
'wealth', 'q8_2_1', 'q8_2_2', 'q8_2_3', 'q8_2_4', 'q8_2_5', 'q8_3',
'q8_4', 'q8_5berlin_1', 'q8_5london_1', 'q8_5paris_1', 'q8_6', 'q8_7',
'q9_1_1', 'q9_2_1', 'q9_3', 'q10_1_1', 'q10_2_1', 'q10_3_1', 'q10_4'],
dtype='object')
In [21]:
d11["q8_2_1"] = np.where(d11["Q11b"].str.contains("HIV test"), 1, 2)
d11["q8_2_2"] = np.where(d11["Q11b"].str.contains("Fingerprint"), 1, 2)
d11["q8_2_3"] = np.where(d11["Q11b"].str.contains("DNA test"), 1, 2)
d11["q8_2_4"] = np.where(d11["Q11b"].str.contains("Cancer screening test"), 1, 2)
d11["q8_2_5"] = np.where(d11["Q11b"].str.contains("Professional horoscope"), 1, 2)
d11["q8_3"] = np.where(d11["Q11c"] == "The lower the quality of the study, the more likely that future studies will change the risk estimate.", 1,
np.where(d11["Q11c"] == "The higher the quality of the study, the more likely that future studies will change the risk estimate.", 2,
np.where(d11["Q11c"] == "Irrespective of the quality of the study, future studies will not change the risk estimate.", 3,
np.where(d11["Q11c"] == "Irrespective of the quality of the study, future studies will change the risk estimate substantially anyway.", 4,0
)
)
)
)
d11["q8_4"] = np.where(d11["Q11d"] == "The growth rate will be 0.4% on average each year", 1,
np.where(d11["Q11d"] == "The growth rate over five years will be exactly 2%", 2,
np.where(d11["Q11d"] == "The growth rate over five years will be between 1% and 3%", 3,
np.where(d11["Q11d"] == "It is not possible to predict the growth rate with certainty", 4,0
)
)
)
)
In [22]:
d11["q8_5berlin_1"] = np.where(d11["Q11a_1"] == 1, 1, 2)
d11["q8_5london_1"] = np.where(d11["Q11a_1"] == 1, 1, 2)
d11["q8_5paris_1"] = np.where(d11["Q11a_1"] == 1, 1, 2)
d11["q8_6"] = np.where(d11["Q11i"] == "The medication increases recovery by 100%", 1,
np.where(d11["Q11i"] == "The medication increases recovery by 50%", 2,
np.where(d11["Q11i"] == "The medication increases recovery by 2%", 3,
np.where(d11["Q11i"] == "None of the above is implied", 4, 0
)
)
)
)
d11["q8_7"] = np.where(d11["Q11h"] == "5 in 100 people prior to the intervention to 6 out of 100 people after the intervention", 1,
np.where(d11["Q11h"] == "100 in 10,000 people prior to the intervention to 120 out of 10,000 people after the intervention", 2,
np.where(d11["Q11h"] == "70 in 100 people prior to the intervention to 90 out of 100 people after the intervention", 3,
np.where(d11["Q11h"] == "It is not possible to determine which of the answers is correct given the information provided", 4, 0
)
)
)
)
d11["q9_1_1"] = d11["Q14a"].copy()
d11["q9_2_1"] = d11["Q14b"].copy()
d11["q9_3"] = np.where(d11["Q14c"] == "Crosicol", 1,
np.where(d11["Q14c"] == "Hertinol", 2,
np.where(d11["Q14c"] == "They are equal", 3,
np.where(d11["Q14c"] == "Can’t say", 4, 0
)
)
)
)
In [23]:
d11["q10_1_1"] = d11["Q13a"].copy()
d11["q10_2_1"] = d11["Q13b"].copy()
d11["q10_3_1"] = d11["Q13c"].copy()
d11["q10_4"] = np.where(d11["Q13d"] == "9 out of 59", 1,
np.where(d11["Q13d"] == "9 out of 10", 2,
np.where(d11["Q13d"] == "59 out of 1000", 3,
np.where(d11["Q13d"] == "59 out of 100", 4, 0
)
)
)
)
In [24]:
d11[ matchCol ]
Out[24]:
| q8_2_1 | q8_2_2 | q8_2_3 | q8_2_4 | q8_2_5 | q8_3 | q8_4 | q8_5berlin_1 | q8_5london_1 | q8_5paris_1 | q8_6 | q8_7 | q9_1_1 | q9_2_1 | q9_3 | q10_1_1 | q10_2_1 | q10_3_1 | q10_4 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 1 | 2 | 2 | 2 | 1 | 4 | 3 | 2 | 2 | 2 | 1 | 1 | 25.0 | 20 | 3 | 500 | 10 | 0.10 | 2 |
| 1 | 1 | 1 | 1 | 2 | 2 | 4 | 4 | 2 | 2 | 2 | 1 | 2 | 25.0 | 20 | 4 | 500 | 10 | 0.10 | 3 |
| 2 | 2 | 1 | 2 | 2 | 2 | 2 | 4 | 1 | 1 | 1 | 2 | 3 | 50.0 | 20 | 3 | 1000 | 10 | 50.00 | 1 |
| 3 | 2 | 1 | 1 | 2 | 2 | 2 | 2 | 1 | 1 | 1 | 2 | 2 | 25.0 | 20 | 3 | 500 | 10 | 0.10 | 3 |
| 4 | 1 | 1 | 1 | 1 | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 2 | 25.0 | 20 | 3 | 500 | 10 | 0.10 | 3 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 365 | 2 | 2 | 2 | 2 | 1 | 3 | 2 | 1 | 1 | 1 | 3 | 3 | 50.0 | 40 | 3 | 500 | 68 | 0.01 | 4 |
| 366 | 2 | 2 | 2 | 1 | 2 | 2 | 2 | 2 | 2 | 2 | 3 | 4 | 25.0 | 20 | 3 | 500 | 50 | 0.10 | 1 |
| 367 | 2 | 2 | 1 | 2 | 2 | 3 | 4 | 1 | 1 | 1 | 3 | 4 | 90.0 | 20 | 3 | 345 | 1 | 0.10 | 2 |
| 368 | 1 | 1 | 1 | 1 | 2 | 2 | 3 | 2 | 2 | 2 | 1 | 3 | 25.0 | 5 | 2 | 600 | 10 | 0.10 | 2 |
| 369 | 2 | 2 | 1 | 2 | 2 | 2 | 4 | 2 | 2 | 2 | 1 | 1 | 25.0 | 10 | 2 | 500 | 500 | 50.00 | 3 |
350 rows × 19 columns
In [25]:
scoreColumns = ["certainty1", "certainty2", "certainty3", "certainty4", "certainty5", "uncertainty1", "uncertainty2", "numeracy1", "numeracy2", "numeracy3", "numeracy4", "numeracy5", "graph1", "graph2", "graph3", "riskcomprehension1", "riskcomprehension2", "riskcomprehension3", "riskcomprehension4", "riskcomprehension5", "bayesian1"]
d11[scoreColumns] = 0
In [26]:
d11Facet = d11.groupby(["ResponseId"]).progress_apply(scoring1)
100%|███████████████████████████████████████████████████████████████████████████████| 350/350 [00:02<00:00, 155.06it/s]
In [27]:
d11Facet
Out[27]:
| ResponseId | Q0 | Q1 | Q2 | Q3 | Q4 | Q5_1 | Q6_1 | Q8_1 | Q8_2 | Q8_3 | Q8_4 | Q8_5 | Q8_6 | Q8_7 | Q8_8 | Q9b_1 | Q9b_4 | Q9b_5 | Q9b_6 | Q9b_7 | Q9b_8 | Q9b_9 | Q11a_1 | Q11a_2 | Q11a_3 | Q11b | Q11c | Q11d | Q11h | Attention Check | Q11i | Q12a | Q12b | Q12c | Q13a | Q13b | Q13c | Q13d | Q14a | Q14b | Q14c | Q15a | Q14b.1 | age | age_rec | isced | income | wealth | q8_2_1 | q8_2_2 | q8_2_3 | q8_2_4 | q8_2_5 | q8_3 | q8_4 | q8_5berlin_1 | q8_5london_1 | q8_5paris_1 | q8_6 | q8_7 | q9_1_1 | q9_2_1 | q9_3 | q10_1_1 | q10_2_1 | q10_3_1 | q10_4 | certainty1 | certainty2 | certainty3 | certainty4 | certainty5 | uncertainty1 | uncertainty2 | numeracy1 | numeracy2 | numeracy3 | numeracy4 | numeracy5 | graph1 | graph2 | graph3 | riskcomprehension1 | riskcomprehension2 | riskcomprehension3 | riskcomprehension4 | riskcomprehension5 | bayesian1 | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ResponseId | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| R_1YkMM2lMB9aEuVL | 150 | R_1YkMM2lMB9aEuVL | Yes, I would like to participate in the study ... | Female | 41 | Undergraduate Program | Salaried/Employee/Consultant in a sector other... | 3 | 3 | 3 | 4 | 3 | 3 | 3 | 3 | 3 | 4 | 85.0 | 0.0 | 0 | 0 | 5.0 | 10 | 0.0 | 1 | 1 | 1 | DNA test | The higher the quality of the study, the more ... | The growth rate over five years will be betwee... | 5 in 100 people prior to the intervention to 6... | Vase | The medication increases recovery by 50% | Less than $102 | Exactly the same as today with the money in th... | True | 1000 | 10 | 1.0 | 59 out of 1000 | 9.0 | 20 | Crosicol | < INR 500,000 | 25000.0 | 41 | 3 | 2 | 1 | 25000.0 | 2 | 2 | 1 | 2 | 2 | 2 | 3 | 1 | 1 | 1 | 2 | 1 | 9.0 | 20 | 1 | 1000 | 10 | 1.0 | 3 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 |
| R_40N8bUn3C0jwGzf | 200 | R_40N8bUn3C0jwGzf | Yes, I would like to participate in the study ... | Female | 18 | Undergraduate Program | Student | 0 (unwilling to take risk) | 0 (no investment experience) | 3 | 3 | 4 | 3 | 3 | 3 | 2 | 3 | 40.0 | 20.0 | 10 | 10 | 10.0 | 5 | 5.0 | 2 | 1 | 1 | HIV test,Fingerprint,DNA test,Cancer screening... | The higher the quality of the study, the more ... | The growth rate over five years will be betwee... | It is not possible to determine which of the a... | Vase | The medication increases recovery by 2% | More than $102 | More than today with the money in this account | True | 1000 | 500 | 100.0 | 9 out of 59 | 11.0 | 60 | They are equal | < INR 500,000 | 80000.0 | 18 | 2 | 2 | 1 | 80000.0 | 1 | 1 | 1 | 1 | 2 | 2 | 3 | 2 | 2 | 2 | 3 | 4 | 11.0 | 60 | 3 | 1000 | 500 | 100.0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 |
| R_40VyTmJ6i96wUP4 | 235 | R_40VyTmJ6i96wUP4 | Yes, I would like to participate in the study ... | Female | 34 | Post-Graduate Program | Not employed | 2 | 0 (no investment experience) | 3 | 2 | 2 | 3 | 3 | 3 | 2 | 3 | 40.0 | 25.0 | 10 | 10 | 15.0 | 0 | 0.0 | 1 | 2 | 1 | DNA test | The higher the quality of the study, the more ... | It is not possible to predict the growth rate ... | It is not possible to determine which of the a... | Vase | The medication increases recovery by 2% | Refuse to answer | Less than today with the money in this account | Do not know | 698 | 352 | 1.0 | 59 out of 1000 | 30.0 | 20 | Crosicol | < INR 500,000 | 500000.0 | 34 | 2 | 1 | 1 | 500000.0 | 2 | 2 | 1 | 2 | 2 | 2 | 4 | 1 | 1 | 1 | 3 | 4 | 30.0 | 20 | 1 | 698 | 352 | 1.0 | 3 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 |
| R_40ZEg7vX3Y7mMQl | 184 | R_40ZEg7vX3Y7mMQl | Yes, I would like to participate in the study ... | Female | 31 | Undergraduate Program | Not employed | 4 | 6 | 2 | 2 | 2 | 1 (strongly disagree) | 2 | 3 | 4 | 1 (strongly disagree) | 30.0 | 30.0 | 10 | 0 | 20.0 | 10 | 0.0 | 1 | 1 | 1 | HIV test,Fingerprint,DNA test,Cancer screening... | The higher the quality of the study, the more ... | The growth rate will be 0.4% on average each year | 70 in 100 people prior to the intervention to ... | Vase | The medication increases recovery by 2% | More than $102 | Less than today with the money in this account | True | 500 | 10 | 10.0 | 59 out of 1000 | 50.0 | 20 | They are equal | < INR 500,000 | 500000.0 | 31 | 2 | 2 | 1 | 500000.0 | 1 | 1 | 1 | 1 | 2 | 2 | 1 | 1 | 1 | 1 | 3 | 3 | 50.0 | 20 | 3 | 500 | 10 | 10.0 | 3 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 0 |
| R_40cbsHWzTyKyFxv | 53 | R_40cbsHWzTyKyFxv | Yes, I would like to participate in the study ... | Male | 38 | Undergraduate Program | Salaried/Employee/Consultant in a sector other... | 5 | 5 | 4 | 6 (strongly agree) | 5 | 4 | 6 (strongly agree) | 6 (strongly agree) | 6 (strongly agree) | 6 (strongly agree) | 45.0 | 35.0 | 0 | 5 | 15.0 | 0 | 0.0 | 2 | 1 | 2 | Fingerprint | The higher the quality of the study, the more ... | The growth rate over five years will be exactl... | It is not possible to determine which of the a... | Vase | The medication increases recovery by 2% | More than $102 | Exactly the same as today with the money in th... | False | 1000 | 100 | 25.0 | 9 out of 10 | 30.0 | 20 | They are equal | < INR 500,000 | 300000.0 | 38 | 3 | 2 | 1 | 300000.0 | 2 | 1 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 3 | 4 | 30.0 | 20 | 3 | 1000 | 100 | 25.0 | 2 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 0 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| R_4yzFrFYMa7w8nQZ | 238 | R_4yzFrFYMa7w8nQZ | Yes, I would like to participate in the study ... | Female | 18 | Secondary School (11th to 12th Std.) | Student | 0 (unwilling to take risk) | 0 (no investment experience) | 6 (strongly agree) | 5 | 5 | 5 | 4 | 4 | 5 | 6 (strongly agree) | 20.0 | 10.0 | 15 | 25 | 5.0 | 9 | 16.0 | 1 | 2 | 1 | DNA test | The higher the quality of the study, the more ... | The growth rate over five years will be exactl... | 70 in 100 people prior to the intervention to ... | Vase | The medication increases recovery by 100% | More than $102 | Less than today with the money in this account | True | 1000 | 100 | 100.0 | 59 out of 1000 | 25.0 | 20 | Hertinol | < INR 500,000 | 90000.0 | 18 | 2 | 3 | 1 | 90000.0 | 2 | 2 | 1 | 2 | 2 | 2 | 2 | 1 | 1 | 1 | 1 | 3 | 25.0 | 20 | 2 | 1000 | 100 | 100.0 | 3 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 0 |
| R_4zPiSk23ayGvFD4 | 364 | R_4zPiSk23ayGvFD4 | Yes, I would like to participate in the study ... | Male | 70 | Undergraduate Program | Salaried/Employee/Consultant in a sector other... | 4 | 6 | 4 | 4 | 4 | 4 | 5 | 5 | 5 | 4 | 15.0 | 20.0 | 10 | 0 | 25.0 | 30 | 0.0 | 2 | 1 | 1 | DNA test | The higher the quality of the study, the more ... | It is not possible to predict the growth rate ... | It is not possible to determine which of the a... | Vase | The medication increases recovery by 100% | More than $102 | Less than today with the money in this account | False | 500 | 10 | 1.0 | 59 out of 1000 | 25.0 | 20 | Crosicol | INR 1500,001 – INR 30,00,000 | 7000000.0 | 70 | 4 | 2 | 3 | 7000000.0 | 2 | 2 | 1 | 2 | 2 | 2 | 4 | 2 | 2 | 2 | 1 | 4 | 25.0 | 20 | 1 | 500 | 10 | 1.0 | 3 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 |
| R_4zdzjECYeO2A5Ox | 255 | R_4zdzjECYeO2A5Ox | Yes, I would like to participate in the study ... | Female | 19 | Secondary School (11th to 12th Std.) | Student | 4 | 2 | 6 (strongly agree) | 4 | 5 | 5 | 5 | 6 (strongly agree) | 3 | 4 | 40.0 | 50.0 | 0 | 10 | 0.0 | 0 | 0.0 | 2 | 1 | 1 | Fingerprint,DNA test | The lower the quality of the study, the more l... | The growth rate over five years will be exactl... | 70 in 100 people prior to the intervention to ... | Vase | None of the above is implied | More than $102 | Less than today with the money in this account | Do not know | 500 | 10 | 0.1 | 9 out of 59 | 25.0 | 20 | They are equal | < INR 500,000 | 800000.0 | 19 | 2 | 3 | 1 | 800000.0 | 2 | 1 | 1 | 2 | 2 | 1 | 2 | 2 | 2 | 2 | 4 | 3 | 25.0 | 20 | 3 | 500 | 10 | 0.1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 |
| R_8k6D0jzzHCC5X3Z | 369 | R_8k6D0jzzHCC5X3Z | Yes, I would like to participate in the study ... | Male | 25 | Undergraduate Program | Salaried/Employee/Consultant in a sector other... | 7 (willing to take risk) | 8 | 6 (strongly agree) | 5 | 5 | 4 | 6 (strongly agree) | 6 (strongly agree) | 6 (strongly agree) | 5 | 5.0 | 5.0 | 5 | 5 | 30.0 | 20 | 30.0 | 2 | 1 | 1 | DNA test | The higher the quality of the study, the more ... | It is not possible to predict the growth rate ... | 5 in 100 people prior to the intervention to 6... | Vase | The medication increases recovery by 100% | More than $102 | Less than today with the money in this account | False | 500 | 500 | 50.0 | 59 out of 1000 | 25.0 | 10 | Hertinol | > INR 75,00,000 | 8000000.0 | 25 | 2 | 2 | 5 | 8000000.0 | 2 | 2 | 1 | 2 | 2 | 2 | 4 | 2 | 2 | 2 | 1 | 1 | 25.0 | 10 | 2 | 500 | 500 | 50.0 | 3 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 |
| R_8taN3wUPbeZMxzM | 2 | R_8taN3wUPbeZMxzM | Yes, I would like to participate in the study ... | Male | 20 | Undergraduate Program | Student | 3 | 0 (no investment experience) | 6 (strongly agree) | 6 (strongly agree) | 4 | 1 (strongly disagree) | 1 (strongly disagree) | 2 | 1 (strongly disagree) | 6 (strongly agree) | 30.0 | 40.0 | 10 | 10 | 0.0 | 5 | 5.0 | 1 | 1 | 1 | Fingerprint | The higher the quality of the study, the more ... | It is not possible to predict the growth rate ... | 70 in 100 people prior to the intervention to ... | Vase | The medication increases recovery by 50% | More than $102 | More than today with the money in this account | Do not know | 1000 | 10 | 50.0 | 9 out of 59 | 50.0 | 20 | They are equal | < INR 500,000 | 10000.0 | 20 | 2 | 2 | 1 | 10000.0 | 2 | 1 | 2 | 2 | 2 | 2 | 4 | 1 | 1 | 1 | 2 | 3 | 50.0 | 20 | 3 | 1000 | 10 | 50.0 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 1 |
350 rows × 89 columns
In [28]:
d11 = d11Facet.copy().reset_index(drop = True)
In [29]:
d12 = scoring2(d11)
d12
Out[29]:
| ResponseId | age | age_rec | isced | income | wealth | Certainty_5 | Uncertainty_2 | RiskComprehension_5 | GraphLiteracy_3 | Numeracy_2 | Bayesianreasoning_1 | Certainty_% | Uncertainty_% | RiskComprehension_% | GraphLiteracy_% | Numeracy_% | Bayesianreasoning_% | TotalScore_18 | TotalScore_% | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | R_1YkMM2lMB9aEuVL | 41 | 3 | 2 | 1 | 25000.0 | 4 | 0 | 2 | 1 | 1 | 0 | 80.0 | 0.0 | 40.0 | 33.333333 | 50.0 | 0.0 | 8 | 44.444444 |
| 1 | R_40N8bUn3C0jwGzf | 18 | 2 | 2 | 1 | 80000.0 | 1 | 0 | 2 | 1 | 0 | 1 | 20.0 | 0.0 | 40.0 | 33.333333 | 0.0 | 100.0 | 5 | 27.777778 |
| 2 | R_40VyTmJ6i96wUP4 | 34 | 2 | 1 | 1 | 500000.0 | 4 | 1 | 3 | 1 | 0 | 0 | 80.0 | 50.0 | 60.0 | 33.333333 | 0.0 | 0.0 | 9 | 50.000000 |
| 3 | R_40ZEg7vX3Y7mMQl | 31 | 2 | 2 | 1 | 500000.0 | 1 | 0 | 2 | 2 | 2 | 0 | 20.0 | 0.0 | 40.0 | 66.666667 | 100.0 | 0.0 | 7 | 38.888889 |
| 4 | R_40cbsHWzTyKyFxv | 38 | 3 | 2 | 1 | 300000.0 | 4 | 0 | 2 | 2 | 0 | 0 | 80.0 | 0.0 | 40.0 | 66.666667 | 0.0 | 0.0 | 8 | 44.444444 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 345 | R_4yzFrFYMa7w8nQZ | 18 | 2 | 3 | 1 | 90000.0 | 4 | 0 | 3 | 2 | 0 | 0 | 80.0 | 0.0 | 60.0 | 66.666667 | 0.0 | 0.0 | 9 | 50.000000 |
| 346 | R_4zPiSk23ayGvFD4 | 70 | 4 | 2 | 3 | 7000000.0 | 4 | 1 | 3 | 2 | 2 | 0 | 80.0 | 50.0 | 60.0 | 66.666667 | 100.0 | 0.0 | 12 | 66.666667 |
| 347 | R_4zdzjECYeO2A5Ox | 19 | 2 | 3 | 1 | 800000.0 | 3 | 1 | 1 | 3 | 2 | 1 | 60.0 | 50.0 | 20.0 | 100.000000 | 100.0 | 100.0 | 11 | 61.111111 |
| 348 | R_8k6D0jzzHCC5X3Z | 25 | 2 | 2 | 5 | 8000000.0 | 4 | 1 | 2 | 1 | 1 | 0 | 80.0 | 50.0 | 40.0 | 33.333333 | 50.0 | 0.0 | 9 | 50.000000 |
| 349 | R_8taN3wUPbeZMxzM | 20 | 2 | 2 | 1 | 10000.0 | 4 | 1 | 2 | 2 | 1 | 1 | 80.0 | 50.0 | 40.0 | 66.666667 | 50.0 | 100.0 | 11 | 61.111111 |
350 rows × 20 columns
In [30]:
df2 = pd.concat([d01, d12], axis = 0).reset_index(drop = True)
In [31]:
df2
Out[31]:
| ResponseId | age | age_rec | isced | income | wealth | Certainty_5 | Uncertainty_2 | RiskComprehension_5 | GraphLiteracy_3 | Numeracy_2 | Bayesianreasoning_1 | Certainty_% | Uncertainty_% | RiskComprehension_% | GraphLiteracy_% | Numeracy_% | Bayesianreasoning_% | TotalScore_18 | TotalScore_% | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 00ujdxbfoya0donu8r00ujcjdkojc99x | 30.5 | 2 | 2 | 1 | 1500000.0 | 1 | 0 | 2 | 1 | 1 | 0 | 20.0 | 0.0 | 40.0 | 33.333333 | 50.0 | 0.0 | 5 | 27.777778 |
| 1 | 01ro2iftnum5v4cn01r03c75aa24emhq | 21.5 | 2 | 2 | 2 | 500000.0 | 1 | 1 | 1 | 0 | 0 | 0 | 20.0 | 50.0 | 20.0 | 0.000000 | 0.0 | 0.0 | 3 | 16.666667 |
| 2 | 022xoawhrghfhv4a1g022xmz7hb0m41f | 50.5 | 3 | 2 | 1 | 15000000.0 | 2 | 1 | 2 | 1 | 1 | 0 | 40.0 | 50.0 | 40.0 | 33.333333 | 50.0 | 0.0 | 7 | 38.888889 |
| 3 | 02pxtdbyibecqqfvwlw02pxwfbane9zd | 50.5 | 3 | 1 | 2 | 3000000.0 | 1 | 1 | 3 | 1 | 0 | 0 | 20.0 | 50.0 | 60.0 | 33.333333 | 0.0 | 0.0 | 6 | 33.333333 |
| 4 | 037aefjdt26mnjd102nz0pk037aedfhc | 50.5 | 3 | 1 | 2 | 7000000.0 | 4 | 1 | 1 | 1 | 0 | 1 | 80.0 | 50.0 | 20.0 | 33.333333 | 0.0 | 100.0 | 8 | 44.444444 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 834 | R_4yzFrFYMa7w8nQZ | 18.0 | 2 | 3 | 1 | 90000.0 | 4 | 0 | 3 | 2 | 0 | 0 | 80.0 | 0.0 | 60.0 | 66.666667 | 0.0 | 0.0 | 9 | 50.000000 |
| 835 | R_4zPiSk23ayGvFD4 | 70.0 | 4 | 2 | 3 | 7000000.0 | 4 | 1 | 3 | 2 | 2 | 0 | 80.0 | 50.0 | 60.0 | 66.666667 | 100.0 | 0.0 | 12 | 66.666667 |
| 836 | R_4zdzjECYeO2A5Ox | 19.0 | 2 | 3 | 1 | 800000.0 | 3 | 1 | 1 | 3 | 2 | 1 | 60.0 | 50.0 | 20.0 | 100.000000 | 100.0 | 100.0 | 11 | 61.111111 |
| 837 | R_8k6D0jzzHCC5X3Z | 25.0 | 2 | 2 | 5 | 8000000.0 | 4 | 1 | 2 | 1 | 1 | 0 | 80.0 | 50.0 | 40.0 | 33.333333 | 50.0 | 0.0 | 9 | 50.000000 |
| 838 | R_8taN3wUPbeZMxzM | 20.0 | 2 | 2 | 1 | 10000.0 | 4 | 1 | 2 | 2 | 1 | 1 | 80.0 | 50.0 | 40.0 | 66.666667 | 50.0 | 100.0 | 11 | 61.111111 |
839 rows × 20 columns
In [ ]:
GRAPHS¶
In [32]:
# The following graph represents frequency of each data point on "TotalScore_18" or the total score out of 13 questions across the sample.
df2['TotalScore_18'].plot(kind = 'hist', xticks = np.arange(0, 20, step=1), xlabel = 'TotalScore_18', title = 'Frequency of Scores' )
Out[32]:
<Axes: title={'center': 'Frequency of Scores'}, xlabel='TotalScore_18', ylabel='Frequency'>
In [33]:
# Absolute mean scores for each facet
(df2[['Certainty_5', 'Uncertainty_2', 'RiskComprehension_5','GraphLiteracy_3','Numeracy_2','Bayesianreasoning_1','TotalScore_18']].mean(axis = 0)).plot(kind = 'bar', title = 'Absolute mean of scores for above data set')
Out[33]:
<Axes: title={'center': 'Absolute mean of scores for above data set'}>
In [34]:
# Normalised mean scores for each facet
df2[['Certainty_%', "Uncertainty_%", 'RiskComprehension_%','GraphLiteracy_%','Numeracy_%','Bayesianreasoning_%','TotalScore_%']].mean(axis = 0).plot(kind = 'bar', title = '% mean of scores for above data set')
Out[34]:
<Axes: title={'center': '% mean of scores for above data set'}>
In [ ]:
In [ ]:
ISCED¶
In [35]:
# Data Frame 5 or df5 is an aggregate data on facet total scores and over all total score, along with education data vs each response.
# This data set is now sorted by education.
df5 = df2.sort_values(by = 'isced')
df5 = df5.reset_index(drop = True)
df5
Out[35]:
| ResponseId | age | age_rec | isced | income | wealth | Certainty_5 | Uncertainty_2 | RiskComprehension_5 | GraphLiteracy_3 | Numeracy_2 | Bayesianreasoning_1 | Certainty_% | Uncertainty_% | RiskComprehension_% | GraphLiteracy_% | Numeracy_% | Bayesianreasoning_% | TotalScore_18 | TotalScore_% | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | R_4dyDxqwOf6c5bUt | 46.0 | 3 | 1 | 2 | 4000000.0 | 4 | 1 | 1 | 2 | 2 | 1 | 80.0 | 50.0 | 20.0 | 66.666667 | 100.0 | 100.0 | 11 | 61.111111 |
| 1 | R_4VgFPHXva4gJjhf | 21.0 | 2 | 1 | 2 | 900000.0 | 4 | 0 | 1 | 2 | 0 | 0 | 80.0 | 0.0 | 20.0 | 66.666667 | 0.0 | 0.0 | 7 | 38.888889 |
| 2 | R_4Vwgb0WSlLsIYlL | 44.0 | 3 | 1 | 1 | 10000000.0 | 4 | 1 | 3 | 1 | 1 | 0 | 80.0 | 50.0 | 60.0 | 33.333333 | 50.0 | 0.0 | 10 | 55.555556 |
| 3 | p15xolgvzls8wctop15q6ithwa3t8msq | 40.5 | 3 | 1 | 3 | 50000000.0 | 0 | 0 | 2 | 3 | 1 | 0 | 0.0 | 0.0 | 40.0 | 100.000000 | 50.0 | 0.0 | 6 | 33.333333 |
| 4 | oza83gum5po6u3jk4oza83ad7gtuqvzd | 30.5 | 2 | 1 | 4 | 150000.0 | 1 | 0 | 1 | 0 | 1 | 1 | 20.0 | 0.0 | 20.0 | 0.000000 | 50.0 | 100.0 | 4 | 22.222222 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 834 | R_42AoOsYAIUhnViQ | 35.0 | 2 | 3 | 3 | 5000.0 | 4 | 1 | 2 | 2 | 0 | 0 | 80.0 | 50.0 | 40.0 | 66.666667 | 0.0 | 0.0 | 9 | 50.000000 |
| 835 | 870h2qs77chp1cd5q870n4fnkjbrxezk | 21.5 | 2 | 3 | 2 | 150000.0 | 2 | 0 | 0 | 0 | 0 | 1 | 40.0 | 0.0 | 0.0 | 0.000000 | 0.0 | 100.0 | 3 | 16.666667 |
| 836 | 8eynniv5jpifaxbqslk8eynnw7he4d4q | 40.5 | 3 | 3 | 1 | 200000.0 | 1 | 2 | 1 | 0 | 0 | 0 | 20.0 | 100.0 | 20.0 | 0.000000 | 0.0 | 0.0 | 4 | 22.222222 |
| 837 | sw8rv2orxir5asm6jn8sw8rv24olibmz | 21.5 | 2 | 3 | 1 | 30000.0 | 1 | 0 | 3 | 0 | 1 | 0 | 20.0 | 0.0 | 60.0 | 0.000000 | 50.0 | 0.0 | 5 | 27.777778 |
| 838 | R_4dE2pi4mUJFadlk | 18.0 | 2 | 3 | 1 | 50000.0 | 4 | 2 | 3 | 3 | 0 | 0 | 80.0 | 100.0 | 60.0 | 100.000000 | 0.0 | 0.0 | 12 | 66.666667 |
839 rows × 20 columns
In [36]:
# Mean of each facet as a % for each category of isced
df5.groupby('isced')[['Certainty_%', "Uncertainty_%", 'RiskComprehension_%','Numeracy_%','GraphLiteracy_%','Bayesianreasoning_%']].mean()
Out[36]:
| Certainty_% | Uncertainty_% | RiskComprehension_% | Numeracy_% | GraphLiteracy_% | Bayesianreasoning_% | |
|---|---|---|---|---|---|---|
| isced | ||||||
| 1 | 44.987893 | 22.760291 | 44.116223 | 53.874092 | 44.552058 | 19.612591 |
| 2 | 52.747253 | 22.390110 | 44.285714 | 54.532967 | 45.879121 | 25.549451 |
| 3 | 62.903226 | 33.870968 | 41.612903 | 48.387097 | 44.086022 | 22.580645 |
In [37]:
# Count of responses for each category isced
df5.groupby('isced')[['ResponseId']].count()
Out[37]:
| ResponseId | |
|---|---|
| isced | |
| 1 | 413 |
| 2 | 364 |
| 3 | 62 |
In [38]:
# Absolute Total Facet scores mean line plot from low to high ISCED
df5.groupby('isced')[['TotalScore_18']].mean().plot( kind = 'line', title = 'Absolute Total Facet scores mean line plot', xticks = np.arange(1,4, step = 1)).legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
Out[38]:
<matplotlib.legend.Legend at 0x293e7e8b7d0>
In [39]:
# Absolute Facet scores mean line plot from low to high edu
df5.groupby('isced')[['Certainty_5', "Uncertainty_2", 'RiskComprehension_5','Numeracy_2','GraphLiteracy_3','Bayesianreasoning_1']].mean().plot( kind = 'line', title = 'Absolute Facet scores mean line plot', xticks = np.arange(1,4, step = 1)).legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
Out[39]:
<matplotlib.legend.Legend at 0x293e7e58290>
In [40]:
# Normalised Facet scores mean line plot from low to high edu
df5.groupby('isced')[['Certainty_%', "Uncertainty_%", 'RiskComprehension_%','Numeracy_%','GraphLiteracy_%','Bayesianreasoning_%','TotalScore_%']].mean().plot( kind = 'line', title = 'Normalised Facet scores mean line plot', xticks = np.arange(1,4, step = 1)).legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
Out[40]:
<matplotlib.legend.Legend at 0x293e61a7650>
In [41]:
# Normalised mean scores for each facet stacked
df5.groupby('isced')[['Certainty_%', "Uncertainty_%", 'RiskComprehension_%','Numeracy_%','GraphLiteracy_%','Bayesianreasoning_%']].mean().plot( kind = 'bar', title = 'Normalised mean scores for each facet stacked', stacked = True).legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
Out[41]:
<matplotlib.legend.Legend at 0x293e5f4d390>
In [42]:
# Normalised mean scores for each facet for each edu response category
df5.groupby('isced')[['Certainty_%', "Uncertainty_%", 'RiskComprehension_%','Numeracy_%','GraphLiteracy_%','Bayesianreasoning_%','TotalScore_%']].mean().T.plot(kind = 'bar', title = 'Normalised mean scores for each facet for each edu response category').legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
Out[42]:
<matplotlib.legend.Legend at 0x293e5e43110>
In [43]:
# Trend line for Absolute Total Facet Score vs edu (isced) reponses
sns.regplot (data = df5, x = 'isced', y = 'TotalScore_18')
Out[43]:
<Axes: xlabel='isced', ylabel='TotalScore_18'>
In [44]:
# Trend line for Absolute Independent Facet Score vs edu (isced) reponses
fig, ax6 = plt.subplots(figsize=(6, 6))
sns.regplot (data = df5, x = 'isced', y = 'Certainty_5', fit_reg=True, ci=None, ax=ax6, label='Certainty_5')
sns.regplot (data = df5, x = 'isced', y = 'Uncertainty_2', fit_reg=True, ci=None, ax=ax6, label='Uncertainty_2')
sns.regplot (data = df5, x = 'isced', y = 'RiskComprehension_5', fit_reg=True, ci=None, ax=ax6, label='RiskComprehension_5')
sns.regplot (data = df5, x = 'isced', y = 'Numeracy_2', fit_reg=True, ci=None, ax=ax6, label='Numeracy_2')
sns.regplot (data = df5, x = 'isced', y = 'GraphLiteracy_3', fit_reg=True, ci=None, ax=ax6, label='GraphLiteracy_3')
sns.regplot (data = df5, x = 'isced', y = 'Bayesianreasoning_1',fit_reg=True, ci=None, ax=ax6, label='Bayesianreasoning_1' )
ax6.set(ylabel='Scores', xlabel='isced')
ax6.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
In [45]:
# Violine Plot for TotalScore_18 for each entry under edu.
sns.violinplot( data = df5, x = 'isced', y = 'TotalScore_18')
Out[45]:
<Axes: xlabel='isced', ylabel='TotalScore_18'>
In [46]:
# Violine Plot for Certainty_5 for each entry under edu.
sns.violinplot( data = df5, x = 'isced', y = 'Certainty_5')
Out[46]:
<Axes: xlabel='isced', ylabel='Certainty_5'>
In [47]:
# Violine Plot for Uncertainty_5 for each entry under edu.
sns.violinplot( data = df5, x = 'isced', y = 'Uncertainty_2')
Out[47]:
<Axes: xlabel='isced', ylabel='Uncertainty_2'>
In [48]:
# Violine Plot for RiskComprehension_5 for each entry under edu.
sns.violinplot( data = df5, x = 'isced', y = 'RiskComprehension_5')
Out[48]:
<Axes: xlabel='isced', ylabel='RiskComprehension_5'>
In [49]:
# Violine Plot for GraphLiteracy_3 for each entry under edu.
sns.violinplot( data = df5, x = 'isced', y = 'GraphLiteracy_3')
Out[49]:
<Axes: xlabel='isced', ylabel='GraphLiteracy_3'>
In [50]:
# Violine Plot for Numeracy_2 for each entry under edu.
sns.violinplot( data = df5, x = 'isced', y = 'Numeracy_2')
Out[50]:
<Axes: xlabel='isced', ylabel='Numeracy_2'>
In [51]:
# Violine Plot for TotalScore_18 for each entry under edu.
sns.violinplot( data = df5, x = 'isced', y = 'Bayesianreasoning_1')
Out[51]:
<Axes: xlabel='isced', ylabel='Bayesianreasoning_1'>
In [ ]:
In [ ]:
In [ ]:
In [ ]:
In [ ]:
INCOME¶
INCOME VS SCORES¶
In [52]:
# DF3 = Sorted by income
df3 = df2.sort_values(by = 'income')
df3 = df3.reset_index(drop = True)
df3.drop(df3[df3['income'] == 7].index, inplace = True)
df3
Out[52]:
| ResponseId | age | age_rec | isced | income | wealth | Certainty_5 | Uncertainty_2 | RiskComprehension_5 | GraphLiteracy_3 | Numeracy_2 | Bayesianreasoning_1 | Certainty_% | Uncertainty_% | RiskComprehension_% | GraphLiteracy_% | Numeracy_% | Bayesianreasoning_% | TotalScore_18 | TotalScore_% | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 00ujdxbfoya0donu8r00ujcjdkojc99x | 30.5 | 2 | 2 | 1 | 1500000.0 | 1 | 0 | 2 | 1 | 1 | 0 | 20.0 | 0.0 | 40.0 | 33.333333 | 50.0 | 0.0 | 5 | 27.777778 |
| 1 | R_4C2deHiFGOXeYRv | 23.0 | 2 | 2 | 1 | 1000000.0 | 4 | 1 | 2 | 2 | 0 | 0 | 80.0 | 50.0 | 40.0 | 66.666667 | 0.0 | 0.0 | 9 | 50.000000 |
| 2 | R_4C2WItrJsoTF1cE | 19.0 | 2 | 2 | 1 | 500000.0 | 4 | 1 | 3 | 1 | 2 | 1 | 80.0 | 50.0 | 60.0 | 33.333333 | 100.0 | 100.0 | 12 | 66.666667 |
| 3 | R_4BXfZlfrPGt8mgt | 21.0 | 2 | 3 | 1 | 10000.0 | 4 | 1 | 2 | 2 | 1 | 0 | 80.0 | 50.0 | 40.0 | 66.666667 | 50.0 | 0.0 | 10 | 55.555556 |
| 4 | R_4Ao5lbx6bkiG9GN | 38.0 | 3 | 1 | 1 | 100000.0 | 4 | 0 | 3 | 3 | 0 | 0 | 80.0 | 0.0 | 60.0 | 100.000000 | 0.0 | 0.0 | 10 | 55.555556 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 834 | 5pjohovg20dh7j4x5pjohucrvulgs19t | 50.5 | 3 | 1 | 5 | 7500000.0 | 2 | 1 | 3 | 0 | 2 | 0 | 40.0 | 50.0 | 60.0 | 0.000000 | 100.0 | 0.0 | 8 | 44.444444 |
| 835 | R_4rGgRh3Y7Grn2f5 | 20.0 | 2 | 2 | 5 | 500000.0 | 4 | 1 | 1 | 0 | 0 | 0 | 80.0 | 50.0 | 20.0 | 0.000000 | 0.0 | 0.0 | 6 | 33.333333 |
| 836 | R_4GeNwNOEgwD5rwL | 19.0 | 2 | 3 | 5 | 400000.0 | 4 | 1 | 2 | 1 | 1 | 0 | 80.0 | 50.0 | 40.0 | 33.333333 | 50.0 | 0.0 | 9 | 50.000000 |
| 837 | R_48SQkLXmsHzNHIf | 25.0 | 2 | 2 | 5 | 100.0 | 4 | 0 | 3 | 1 | 0 | 1 | 80.0 | 0.0 | 60.0 | 33.333333 | 0.0 | 100.0 | 9 | 50.000000 |
| 838 | gs539g4qtok8tm7rmcjegs539g7ozj75 | 50.5 | 3 | 1 | 5 | 10000000.0 | 2 | 0 | 2 | 1 | 1 | 1 | 40.0 | 0.0 | 40.0 | 33.333333 | 50.0 | 100.0 | 7 | 38.888889 |
839 rows × 20 columns
In [53]:
# Normalised mean of each facet as a numerical (sorted by income)
df3.groupby('income')[['Certainty_%','RiskComprehension_%','GraphLiteracy_%','Numeracy_%','Bayesianreasoning_%','TotalScore_%']].mean()
Out[53]:
| Certainty_% | RiskComprehension_% | GraphLiteracy_% | Numeracy_% | Bayesianreasoning_% | TotalScore_% | |
|---|---|---|---|---|---|---|
| income | ||||||
| 1 | 58.053691 | 42.885906 | 48.210291 | 53.020134 | 25.167785 | 46.290082 |
| 2 | 44.802432 | 44.316109 | 44.984802 | 55.927052 | 21.276596 | 42.046606 |
| 3 | 45.818182 | 47.818182 | 44.545455 | 53.636364 | 20.000000 | 42.979798 |
| 4 | 43.076923 | 42.769231 | 37.948718 | 50.769231 | 21.538462 | 39.572650 |
| 5 | 48.648649 | 41.081081 | 35.135135 | 45.945946 | 18.918919 | 39.189189 |
In [54]:
# Count of responses for each category (sorted by income)
df3.groupby('income')[['ResponseId']].count()
Out[54]:
| ResponseId | |
|---|---|
| income | |
| 1 | 298 |
| 2 | 329 |
| 3 | 110 |
| 4 | 65 |
| 5 | 37 |
In [55]:
# Absolute mean of Total Facet score line plot (sorted by income)
df3.groupby('income')[['TotalScore_18']].mean().plot( kind = 'line', title = 'Absolute mean of Total Facet score line plot (sorted by income)').legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
Out[55]:
<matplotlib.legend.Legend at 0x293e7aead90>
In [56]:
# Absolute mean of each Facet score line plot (sorted by income)
df3.groupby('income')[['Certainty_5', "Uncertainty_2", 'RiskComprehension_5','GraphLiteracy_3','Numeracy_2','Bayesianreasoning_1']].mean().plot( kind = 'line', title = 'Absolute Facet scores mean line plot').legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
Out[56]:
<matplotlib.legend.Legend at 0x293e7b15b10>
In [57]:
# Normalised mean of each Facet score line plot (sorted by income)
df3.groupby('income')[['Certainty_%', "Uncertainty_%", 'RiskComprehension_%','GraphLiteracy_%','Numeracy_%','Bayesianreasoning_%', 'TotalScore_%']].mean().plot( kind = 'line', title = '% mean of each Facet score line plot (sorted by income)').legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
Out[57]:
<matplotlib.legend.Legend at 0x293e79f3810>
In [58]:
# Normalised mean of each Facet score stacked plot (sorted by income)
df3.groupby('income')[['Certainty_%', "Uncertainty_%", 'RiskComprehension_%','GraphLiteracy_%','Numeracy_%','Bayesianreasoning_%']].mean().plot( kind = 'bar', title = '% mean of each Facet score stacked plot (sorted by income)', stacked = True).legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
Out[58]:
<matplotlib.legend.Legend at 0x293e7a42d50>
In [59]:
# Normalised mean of each Facet score hist plot (sorted by income)
df3.groupby('income')[['Certainty_%', "Uncertainty_%", 'RiskComprehension_%','GraphLiteracy_%','Numeracy_%','Bayesianreasoning_%','TotalScore_%']].mean().T.plot(kind = 'bar', title = '% mean scores for each facet for each income response category').legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
Out[59]:
<matplotlib.legend.Legend at 0x293e731bb90>
In [60]:
# Trend line for Absolute Total Facet Score vs income
sns.regplot (data = df3, x = 'income', y = 'TotalScore_18')
Out[60]:
<Axes: xlabel='income', ylabel='TotalScore_18'>
In [61]:
# Trend line for Absolute Independent Facet Score vs income reponses
fig, ax = plt.subplots(figsize=(6, 6))
sns.regplot (data = df3, x = 'income', y = 'Certainty_5', fit_reg=True, ci=None, ax=ax, label='Certainty_5')
sns.regplot (data = df3, x = 'income', y = 'Uncertainty_2', fit_reg=True, ci=None, ax=ax, label='Uncertainty_2')
sns.regplot (data = df3, x = 'income', y = 'RiskComprehension_5', fit_reg=True, ci=None, ax=ax, label='RiskComprehension_5')
sns.regplot (data = df3, x = 'income', y = 'Numeracy_2', fit_reg=True, ci=None, ax=ax, label='Numeracy_2')
sns.regplot (data = df3, x = 'income', y = 'GraphLiteracy_3', fit_reg=True, ci=None, ax=ax, label='GraphLiteracy_3')
sns.regplot (data = df3, x = 'income', y = 'Bayesianreasoning_1',fit_reg=True, ci=None, ax=ax, label='Bayesianreasoning_1' )
ax.set(ylabel='Scores', xlabel='income')
ax.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
In [62]:
# Violin Plot for TotalScore_18 for each entry under income.
sns.violinplot( data = df3, x = 'income', y = 'TotalScore_18')
Out[62]:
<Axes: xlabel='income', ylabel='TotalScore_18'>
In [63]:
# Violin Plot for Certainty_5 for each entry under income.
sns.violinplot( data = df3, x = 'income', y = 'Certainty_5')
Out[63]:
<Axes: xlabel='income', ylabel='Certainty_5'>
In [64]:
# Violin Plot for Certainty_5 for each entry under income.
sns.violinplot( data = df3, x = 'income', y = 'Uncertainty_2')
Out[64]:
<Axes: xlabel='income', ylabel='Uncertainty_2'>
In [65]:
# Violine Plot for RiskComprehension_5 for each entry under income.
sns.violinplot( data = df3, x = 'income', y = 'RiskComprehension_5')
Out[65]:
<Axes: xlabel='income', ylabel='RiskComprehension_5'>
In [66]:
# Violine Plot for GraphLiteracy_3 for each entry under income.
sns.violinplot( data = df3, x = 'income', y = 'GraphLiteracy_3')
Out[66]:
<Axes: xlabel='income', ylabel='GraphLiteracy_3'>
In [67]:
# Violine Plot for Numeracy_2 for each entry under income.
sns.violinplot( data = df3, x = 'income', y = 'Numeracy_2')
Out[67]:
<Axes: xlabel='income', ylabel='Numeracy_2'>
In [68]:
# Violine Plot for TotalScore_18 for each entry under income.
sns.violinplot( data = df3, x = 'income', y = 'Bayesianreasoning_1')
Out[68]:
<Axes: xlabel='income', ylabel='Bayesianreasoning_1'>
In [ ]:
In [ ]:
INCOME vs SCORES w/ ISCED classification¶
In [69]:
# Descriptive stats for the data set, isced = 1
# NA values of income are removed
df7 = df5
df7.drop(df7[df7['income'] == 7].index, inplace = True)
df7.loc[df7['isced']==1].describe()
Out[69]:
| age | age_rec | isced | income | wealth | Certainty_5 | Uncertainty_2 | RiskComprehension_5 | GraphLiteracy_3 | Numeracy_2 | Bayesianreasoning_1 | Certainty_% | Uncertainty_% | RiskComprehension_% | GraphLiteracy_% | Numeracy_% | Bayesianreasoning_% | TotalScore_18 | TotalScore_% | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| count | 413.000000 | 413.000000 | 413.0 | 413.000000 | 4.130000e+02 | 413.000000 | 413.000000 | 413.000000 | 413.000000 | 413.000000 | 413.000000 | 413.000000 | 413.000000 | 413.000000 | 413.000000 | 413.000000 | 413.000000 | 413.000000 | 413.000000 |
| mean | 35.285714 | 2.443099 | 1.0 | 2.314770 | 1.020335e+07 | 2.249395 | 0.455206 | 2.205811 | 1.336562 | 1.077482 | 0.196126 | 44.987893 | 22.760291 | 44.116223 | 44.552058 | 53.874092 | 19.612591 | 7.520581 | 41.781006 |
| std | 9.828602 | 0.582747 | 0.0 | 1.091761 | 3.794182e+07 | 1.293479 | 0.616168 | 1.069781 | 0.963179 | 0.771961 | 0.397546 | 25.869582 | 30.808415 | 21.395627 | 32.105960 | 38.598049 | 39.754648 | 2.523229 | 14.017942 |
| min | 18.000000 | 2.000000 | 1.0 | 1.000000 | 0.000000e+00 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 2.000000 | 11.111111 |
| 25% | 30.500000 | 2.000000 | 1.0 | 2.000000 | 3.000000e+05 | 1.000000 | 0.000000 | 1.000000 | 1.000000 | 0.000000 | 0.000000 | 20.000000 | 0.000000 | 20.000000 | 33.333333 | 0.000000 | 0.000000 | 6.000000 | 33.333333 |
| 50% | 30.500000 | 2.000000 | 1.0 | 2.000000 | 1.200000e+06 | 2.000000 | 0.000000 | 2.000000 | 1.000000 | 1.000000 | 0.000000 | 40.000000 | 0.000000 | 40.000000 | 33.333333 | 50.000000 | 0.000000 | 7.000000 | 38.888889 |
| 75% | 40.500000 | 3.000000 | 1.0 | 3.000000 | 5.000000e+06 | 3.000000 | 1.000000 | 3.000000 | 2.000000 | 2.000000 | 0.000000 | 60.000000 | 50.000000 | 60.000000 | 66.666667 | 100.000000 | 0.000000 | 9.000000 | 50.000000 |
| max | 70.500000 | 4.000000 | 1.0 | 5.000000 | 5.000000e+08 | 5.000000 | 2.000000 | 5.000000 | 3.000000 | 2.000000 | 1.000000 | 100.000000 | 100.000000 | 100.000000 | 100.000000 | 100.000000 | 100.000000 | 15.000000 | 83.333333 |
In [70]:
df7.loc[df7['isced']==2].describe()
Out[70]:
| age | age_rec | isced | income | wealth | Certainty_5 | Uncertainty_2 | RiskComprehension_5 | GraphLiteracy_3 | Numeracy_2 | Bayesianreasoning_1 | Certainty_% | Uncertainty_% | RiskComprehension_% | GraphLiteracy_% | Numeracy_% | Bayesianreasoning_% | TotalScore_18 | TotalScore_% | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| count | 364.000000 | 364.000000 | 364.0 | 364.000000 | 3.640000e+02 | 364.000000 | 364.000000 | 364.000000 | 364.000000 | 364.000000 | 364.000000 | 364.000000 | 364.000000 | 364.000000 | 364.000000 | 364.000000 | 364.000000 | 364.000000 | 364.000000 |
| mean | 30.877747 | 2.271978 | 2.0 | 1.851648 | 9.861171e+06 | 2.637363 | 0.447802 | 2.214286 | 1.376374 | 1.090659 | 0.255495 | 52.747253 | 22.390110 | 44.285714 | 45.879121 | 54.532967 | 25.549451 | 8.021978 | 44.566545 |
| std | 10.056769 | 0.514458 | 0.0 | 1.017734 | 5.225548e+07 | 1.323794 | 0.612110 | 1.019487 | 0.995080 | 0.823231 | 0.436739 | 26.475871 | 30.605488 | 20.389748 | 33.169331 | 41.161531 | 43.673914 | 2.646180 | 14.701002 |
| min | 18.000000 | 2.000000 | 2.0 | 1.000000 | 0.000000e+00 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 1.000000 | 5.555556 |
| 25% | 22.000000 | 2.000000 | 2.0 | 1.000000 | 2.000000e+05 | 1.000000 | 0.000000 | 2.000000 | 1.000000 | 0.000000 | 0.000000 | 20.000000 | 0.000000 | 40.000000 | 33.333333 | 0.000000 | 0.000000 | 6.000000 | 33.333333 |
| 50% | 30.500000 | 2.000000 | 2.0 | 2.000000 | 6.000000e+05 | 3.000000 | 0.000000 | 2.000000 | 1.000000 | 1.000000 | 0.000000 | 60.000000 | 0.000000 | 40.000000 | 33.333333 | 50.000000 | 0.000000 | 8.000000 | 44.444444 |
| 75% | 34.000000 | 2.000000 | 2.0 | 2.000000 | 3.000000e+06 | 4.000000 | 1.000000 | 3.000000 | 2.000000 | 2.000000 | 1.000000 | 80.000000 | 50.000000 | 60.000000 | 66.666667 | 100.000000 | 100.000000 | 10.000000 | 55.555556 |
| max | 70.000000 | 4.000000 | 2.0 | 5.000000 | 6.000000e+08 | 5.000000 | 2.000000 | 5.000000 | 3.000000 | 2.000000 | 1.000000 | 100.000000 | 100.000000 | 100.000000 | 100.000000 | 100.000000 | 100.000000 | 15.000000 | 83.333333 |
In [71]:
df7.loc[df7['isced']==3].describe()
Out[71]:
| age | age_rec | isced | income | wealth | Certainty_5 | Uncertainty_2 | RiskComprehension_5 | GraphLiteracy_3 | Numeracy_2 | Bayesianreasoning_1 | Certainty_% | Uncertainty_% | RiskComprehension_% | GraphLiteracy_% | Numeracy_% | Bayesianreasoning_% | TotalScore_18 | TotalScore_% | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| count | 62.000000 | 62.000000 | 62.0 | 62.000000 | 6.200000e+01 | 62.000000 | 62.000000 | 62.000000 | 62.000000 | 62.000000 | 62.000000 | 62.000000 | 62.000000 | 62.000000 | 62.000000 | 62.000000 | 62.000000 | 62.000000 | 62.000000 |
| mean | 26.951613 | 2.225806 | 3.0 | 1.629032 | 3.719399e+06 | 3.145161 | 0.677419 | 2.080645 | 1.322581 | 0.967742 | 0.225806 | 62.903226 | 33.870968 | 41.612903 | 44.086022 | 48.387097 | 22.580645 | 8.419355 | 46.774194 |
| std | 12.274093 | 0.584481 | 0.0 | 1.119629 | 1.336024e+07 | 1.157255 | 0.672022 | 0.892563 | 0.971296 | 0.829136 | 0.421526 | 23.145094 | 33.601075 | 17.851257 | 32.376538 | 41.456813 | 42.152552 | 2.583354 | 14.351966 |
| min | 16.000000 | 0.000000 | 3.0 | 1.000000 | 0.000000e+00 | 1.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 20.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 3.000000 | 16.666667 |
| 25% | 19.000000 | 2.000000 | 3.0 | 1.000000 | 5.000000e+04 | 2.000000 | 0.000000 | 2.000000 | 1.000000 | 0.000000 | 0.000000 | 40.000000 | 0.000000 | 40.000000 | 33.333333 | 0.000000 | 0.000000 | 7.000000 | 38.888889 |
| 50% | 21.250000 | 2.000000 | 3.0 | 1.000000 | 2.000000e+05 | 4.000000 | 1.000000 | 2.000000 | 1.000000 | 1.000000 | 0.000000 | 80.000000 | 50.000000 | 40.000000 | 33.333333 | 50.000000 | 0.000000 | 9.000000 | 50.000000 |
| 75% | 30.500000 | 2.000000 | 3.0 | 2.000000 | 1.500000e+06 | 4.000000 | 1.000000 | 3.000000 | 2.000000 | 2.000000 | 0.000000 | 80.000000 | 50.000000 | 60.000000 | 66.666667 | 100.000000 | 0.000000 | 10.000000 | 55.555556 |
| max | 70.500000 | 4.000000 | 3.0 | 5.000000 | 1.000000e+08 | 5.000000 | 2.000000 | 4.000000 | 3.000000 | 2.000000 | 1.000000 | 100.000000 | 100.000000 | 80.000000 | 100.000000 | 100.000000 | 100.000000 | 12.000000 | 66.666667 |
In [72]:
# Trend line for Absolute Tota Facet Score vs income reponses sorted by isced and ORDERED by income WITH scatter
fig, ax7 = plt.subplots(figsize=(6, 6))
sns.regplot (data = df7.loc[df7['isced']==1].reset_index(drop = True), x = 'income', y = df7.loc[df7['isced']==1]['TotalScore_18'], fit_reg=True, ci=None, ax=ax7, label='ISCED = 1')
sns.regplot (data = df7.loc[df7['isced']==2].reset_index(drop = True), x = 'income', y = df7.loc[df7['isced']==2]['TotalScore_18'], fit_reg=True, ci=None, ax=ax7, label='ISCED = 2')
sns.regplot (data = df7.loc[df7['isced']==3].reset_index(drop = True), x = 'income', y = df7.loc[df7['isced']==3]['TotalScore_18'], fit_reg=True, ci=None, ax=ax7, label='ISCED = 3')
ax7.set(ylabel='Total Scores_19', xlabel='INCOME')
ax7.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
In [73]:
# Trend line for Absolute Tota Facet Score vs income reponses sorted by isced and ORDERED by income WITHOUT scatter
fig, ax8 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df7.loc[df7['isced']==1].reset_index(drop = True), x = 'income', y = 'TotalScore_18', fit_reg=True, ci=None, ax=ax8, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[df7['isced']==2].reset_index(drop = True), x = 'income', y = 'TotalScore_18', fit_reg=True, ci=None, ax=ax8, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[df7['isced']==3].reset_index(drop = True), x = 'income', y = 'TotalScore_18', fit_reg=True, ci=None, ax=ax8, label='ISCED = 3')
ax8.set(ylabel='Total Scores_19', xlabel='INCOME')
ax8.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
In [74]:
# Trend line for Absolute Certainty Score vs income reponses sorted by isced and ORDERED by income WITHOUT scatter
fig, ax9 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df7.loc[df7['isced']==1].reset_index(drop = True), x = 'income', y = 'Certainty_5', fit_reg=True, ci=None, ax=ax9, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[df7['isced']==2].reset_index(drop = True), x = 'income', y = 'Certainty_5', fit_reg=True, ci=None, ax=ax9, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[df7['isced']==3].reset_index(drop = True), x = 'income', y = 'Certainty_5', fit_reg=True, ci=None, ax=ax9, label='ISCED = 3')
ax9.set(ylabel='Certainty_5', xlabel='INCOME')
ax9.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
In [75]:
# Trend line for Absolute Risk Comprehension Score vs income reponses sorted by isced and ORDERED by income WITHOUT scatter
fig, ax10 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df7.loc[df7['isced']==1].reset_index(drop = True), x = 'income', y = 'RiskComprehension_5', fit_reg=True, ci=None, ax=ax10, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[df7['isced']==2].reset_index(drop = True), x = 'income', y = 'RiskComprehension_5', fit_reg=True, ci=None, ax=ax10, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[df7['isced']==3].reset_index(drop = True), x = 'income', y = 'RiskComprehension_5', fit_reg=True, ci=None, ax=ax10, label='ISCED = 3')
ax10.set(ylabel='RiskComprehension_5', xlabel='INCOME')
ax10.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
In [76]:
# Trend line for Absolute Number Comprehension Score vs income reponses sorted by isced and ORDERED by income WITHOUT scatter
fig, ax11 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df7.loc[df7['isced']==1].reset_index(drop = True), x = 'income', y = 'Numeracy_2', fit_reg=True, ci=None, ax=ax11, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[df7['isced']==2].reset_index(drop = True), x = 'income', y = 'Numeracy_2', fit_reg=True, ci=None, ax=ax11, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[df7['isced']==3].reset_index(drop = True), x = 'income', y = 'Numeracy_2', fit_reg=True, ci=None, ax=ax11, label='ISCED = 3')
ax11.set(ylabel='Numeracy_2', xlabel='INCOME')
ax11.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
In [77]:
# Trend line for Absolute Graph Comprehension Score vs income reponses sorted by isced and ORDERED by income WITHOUT scatter
fig, ax11 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df7.loc[df7['isced']==1].reset_index(drop = True), x = 'income', y = 'GraphLiteracy_3', fit_reg=True, ci=None, ax=ax11, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[df7['isced']==2].reset_index(drop = True), x = 'income', y = 'GraphLiteracy_3', fit_reg=True, ci=None, ax=ax11, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[df7['isced']==3].reset_index(drop = True), x = 'income', y = 'GraphLiteracy_3', fit_reg=True, ci=None, ax=ax11, label='ISCED = 3')
ax11.set(ylabel='GraphLiteracy_3', xlabel='INCOME')
ax11.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
In [78]:
# Trend line for Absolute Bayesian Reasoning Score vs income reponses sorted by isced and ORDERED by income WITHOUT scatter
fig, ax12 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df7.loc[df7['isced']==1].reset_index(drop = True), x = 'income', y = 'Bayesianreasoning_1', fit_reg=True, ci=None, ax=ax12, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[df7['isced']==2].reset_index(drop = True), x = 'income', y = 'Bayesianreasoning_1', fit_reg=True, ci=None, ax=ax12, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[df7['isced']==3].reset_index(drop = True), x = 'income', y = 'Bayesianreasoning_1', fit_reg=True, ci=None, ax=ax12, label='ISCED = 3')
ax12.set(ylabel='Bayesianreasoning_1', xlabel='INCOME')
ax12.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
In [ ]:
In [ ]:
INCOME vs SCORES w/ ISCED and AGE based classification¶
In [79]:
df7
Out[79]:
| ResponseId | age | age_rec | isced | income | wealth | Certainty_5 | Uncertainty_2 | RiskComprehension_5 | GraphLiteracy_3 | Numeracy_2 | Bayesianreasoning_1 | Certainty_% | Uncertainty_% | RiskComprehension_% | GraphLiteracy_% | Numeracy_% | Bayesianreasoning_% | TotalScore_18 | TotalScore_% | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | R_4dyDxqwOf6c5bUt | 46.0 | 3 | 1 | 2 | 4000000.0 | 4 | 1 | 1 | 2 | 2 | 1 | 80.0 | 50.0 | 20.0 | 66.666667 | 100.0 | 100.0 | 11 | 61.111111 |
| 1 | R_4VgFPHXva4gJjhf | 21.0 | 2 | 1 | 2 | 900000.0 | 4 | 0 | 1 | 2 | 0 | 0 | 80.0 | 0.0 | 20.0 | 66.666667 | 0.0 | 0.0 | 7 | 38.888889 |
| 2 | R_4Vwgb0WSlLsIYlL | 44.0 | 3 | 1 | 1 | 10000000.0 | 4 | 1 | 3 | 1 | 1 | 0 | 80.0 | 50.0 | 60.0 | 33.333333 | 50.0 | 0.0 | 10 | 55.555556 |
| 3 | p15xolgvzls8wctop15q6ithwa3t8msq | 40.5 | 3 | 1 | 3 | 50000000.0 | 0 | 0 | 2 | 3 | 1 | 0 | 0.0 | 0.0 | 40.0 | 100.000000 | 50.0 | 0.0 | 6 | 33.333333 |
| 4 | oza83gum5po6u3jk4oza83ad7gtuqvzd | 30.5 | 2 | 1 | 4 | 150000.0 | 1 | 0 | 1 | 0 | 1 | 1 | 20.0 | 0.0 | 20.0 | 0.000000 | 50.0 | 100.0 | 4 | 22.222222 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 834 | R_42AoOsYAIUhnViQ | 35.0 | 2 | 3 | 3 | 5000.0 | 4 | 1 | 2 | 2 | 0 | 0 | 80.0 | 50.0 | 40.0 | 66.666667 | 0.0 | 0.0 | 9 | 50.000000 |
| 835 | 870h2qs77chp1cd5q870n4fnkjbrxezk | 21.5 | 2 | 3 | 2 | 150000.0 | 2 | 0 | 0 | 0 | 0 | 1 | 40.0 | 0.0 | 0.0 | 0.000000 | 0.0 | 100.0 | 3 | 16.666667 |
| 836 | 8eynniv5jpifaxbqslk8eynnw7he4d4q | 40.5 | 3 | 3 | 1 | 200000.0 | 1 | 2 | 1 | 0 | 0 | 0 | 20.0 | 100.0 | 20.0 | 0.000000 | 0.0 | 0.0 | 4 | 22.222222 |
| 837 | sw8rv2orxir5asm6jn8sw8rv24olibmz | 21.5 | 2 | 3 | 1 | 30000.0 | 1 | 0 | 3 | 0 | 1 | 0 | 20.0 | 0.0 | 60.0 | 0.000000 | 50.0 | 0.0 | 5 | 27.777778 |
| 838 | R_4dE2pi4mUJFadlk | 18.0 | 2 | 3 | 1 | 50000.0 | 4 | 2 | 3 | 3 | 0 | 0 | 80.0 | 100.0 | 60.0 | 100.000000 | 0.0 | 0.0 | 12 | 66.666667 |
839 rows × 20 columns
In [80]:
# Since we already have a classification for Age groups in the form of age_rec, we will use that.
# We will also use median of age to see if it yields any relevant results, as instructed.
# AXES to be used = Age or age groups, ISCED, Income
# Age groups = [2,3,4]
# Age group 2 = 18 to 35 y/o
# Age group 3 = 36 to 59 y/o
# Age group 4 = 60 to 75 y/o (75 y/o, i.e, within the scope of the data we have, it can mean 60 and above also)
In [81]:
df7.loc[(df7['age_rec']==2)].describe()
Out[81]:
| age | age_rec | isced | income | wealth | Certainty_5 | Uncertainty_2 | RiskComprehension_5 | GraphLiteracy_3 | Numeracy_2 | Bayesianreasoning_1 | Certainty_% | Uncertainty_% | RiskComprehension_% | GraphLiteracy_% | Numeracy_% | Bayesianreasoning_% | TotalScore_18 | TotalScore_% | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| count | 573.000000 | 573.0 | 573.000000 | 573.000000 | 5.730000e+02 | 573.000000 | 573.000000 | 573.000000 | 573.000000 | 573.000000 | 573.000000 | 573.000000 | 573.000000 | 573.000000 | 573.000000 | 573.000000 | 573.000000 | 573.000000 | 573.000000 |
| mean | 26.943281 | 2.0 | 1.647469 | 1.959860 | 7.616613e+06 | 2.554974 | 0.476440 | 2.158813 | 1.371728 | 1.085515 | 0.235602 | 51.099476 | 23.821990 | 43.176265 | 45.724258 | 54.275742 | 23.560209 | 7.883072 | 43.794842 |
| std | 4.633303 | 0.0 | 0.626887 | 1.047872 | 3.540355e+07 | 1.350679 | 0.638141 | 1.016084 | 0.973263 | 0.805151 | 0.424745 | 27.013572 | 31.907039 | 20.321679 | 32.442106 | 40.257572 | 42.474533 | 2.596786 | 14.426588 |
| min | 18.000000 | 2.0 | 1.000000 | 1.000000 | 0.000000e+00 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 1.000000 | 5.555556 |
| 25% | 22.000000 | 2.0 | 1.000000 | 1.000000 | 2.000000e+05 | 1.000000 | 0.000000 | 1.000000 | 1.000000 | 0.000000 | 0.000000 | 20.000000 | 0.000000 | 20.000000 | 33.333333 | 0.000000 | 0.000000 | 6.000000 | 33.333333 |
| 50% | 30.000000 | 2.0 | 2.000000 | 2.000000 | 6.500000e+05 | 3.000000 | 0.000000 | 2.000000 | 1.000000 | 1.000000 | 0.000000 | 60.000000 | 0.000000 | 40.000000 | 33.333333 | 50.000000 | 0.000000 | 8.000000 | 44.444444 |
| 75% | 30.500000 | 2.0 | 2.000000 | 2.000000 | 3.000000e+06 | 4.000000 | 1.000000 | 3.000000 | 2.000000 | 2.000000 | 0.000000 | 80.000000 | 50.000000 | 60.000000 | 66.666667 | 100.000000 | 0.000000 | 10.000000 | 55.555556 |
| max | 35.000000 | 2.0 | 3.000000 | 5.000000 | 5.000000e+08 | 5.000000 | 2.000000 | 5.000000 | 3.000000 | 2.000000 | 1.000000 | 100.000000 | 100.000000 | 100.000000 | 100.000000 | 100.000000 | 100.000000 | 15.000000 | 83.333333 |
In [82]:
df7.loc[(df7['age_rec']==3)].describe()
Out[82]:
| age | age_rec | isced | income | wealth | Certainty_5 | Uncertainty_2 | RiskComprehension_5 | GraphLiteracy_3 | Numeracy_2 | Bayesianreasoning_1 | Certainty_% | Uncertainty_% | RiskComprehension_% | GraphLiteracy_% | Numeracy_% | Bayesianreasoning_% | TotalScore_18 | TotalScore_% | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| count | 232.000000 | 232.0 | 232.000000 | 232.000000 | 2.320000e+02 | 232.000000 | 232.000000 | 232.000000 | 232.000000 | 232.000000 | 232.000000 | 232.000000 | 232.000000 | 232.000000 | 232.000000 | 232.00000 | 232.000000 | 232.000000 | 232.000000 |
| mean | 42.892241 | 3.0 | 1.426724 | 2.306034 | 1.445481e+07 | 2.314655 | 0.448276 | 2.271552 | 1.284483 | 1.047414 | 0.198276 | 46.293103 | 22.413793 | 45.431034 | 42.816092 | 52.37069 | 19.827586 | 7.564655 | 42.025862 |
| std | 4.753812 | 0.0 | 0.591258 | 1.138221 | 6.124404e+07 | 1.282635 | 0.578771 | 1.048380 | 0.987419 | 0.790853 | 0.399563 | 25.652698 | 28.938528 | 20.967600 | 32.913966 | 39.54263 | 39.956313 | 2.591219 | 14.395662 |
| min | 36.000000 | 3.0 | 1.000000 | 1.000000 | 3.000000e+00 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.00000 | 0.000000 | 2.000000 | 11.111111 |
| 25% | 40.500000 | 3.0 | 1.000000 | 1.750000 | 3.000000e+05 | 1.000000 | 0.000000 | 2.000000 | 0.000000 | 0.000000 | 0.000000 | 20.000000 | 0.000000 | 40.000000 | 0.000000 | 0.00000 | 0.000000 | 6.000000 | 33.333333 |
| 50% | 40.500000 | 3.0 | 1.000000 | 2.000000 | 1.750000e+06 | 2.000000 | 0.000000 | 2.000000 | 1.000000 | 1.000000 | 0.000000 | 40.000000 | 0.000000 | 40.000000 | 33.333333 | 50.00000 | 0.000000 | 8.000000 | 44.444444 |
| 75% | 46.500000 | 3.0 | 2.000000 | 3.000000 | 7.500000e+06 | 4.000000 | 1.000000 | 3.000000 | 2.000000 | 2.000000 | 0.000000 | 80.000000 | 50.000000 | 60.000000 | 66.666667 | 100.00000 | 0.000000 | 9.000000 | 50.000000 |
| max | 54.000000 | 3.0 | 3.000000 | 5.000000 | 6.000000e+08 | 5.000000 | 2.000000 | 5.000000 | 3.000000 | 2.000000 | 1.000000 | 100.000000 | 100.000000 | 100.000000 | 100.000000 | 100.00000 | 100.000000 | 14.000000 | 77.777778 |
In [83]:
df7.loc[(df7['age_rec']==4)].describe()
Out[83]:
| age | age_rec | isced | income | wealth | Certainty_5 | Uncertainty_2 | RiskComprehension_5 | GraphLiteracy_3 | Numeracy_2 | Bayesianreasoning_1 | Certainty_% | Uncertainty_% | RiskComprehension_% | GraphLiteracy_% | Numeracy_% | Bayesianreasoning_% | TotalScore_18 | TotalScore_% | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| count | 33.000000 | 33.0 | 33.000000 | 33.000000 | 3.300000e+01 | 33.000000 | 33.000000 | 33.000000 | 33.000000 | 33.000000 | 33.000000 | 33.000000 | 33.000000 | 33.000000 | 33.000000 | 33.000000 | 33.000000 | 33.000000 | 33.000000 |
| mean | 62.969697 | 4.0 | 1.484848 | 2.181818 | 9.582270e+06 | 2.393939 | 0.454545 | 2.393939 | 1.545455 | 1.090909 | 0.212121 | 47.878788 | 22.727273 | 47.878788 | 51.515152 | 54.545455 | 21.212121 | 8.090909 | 44.949495 |
| std | 4.390934 | 0.0 | 0.618527 | 1.236288 | 1.406214e+07 | 0.966288 | 0.616994 | 1.248484 | 0.938446 | 0.765001 | 0.415149 | 19.325756 | 30.849709 | 24.969679 | 31.281550 | 38.250074 | 41.514875 | 2.602446 | 14.458036 |
| min | 57.000000 | 4.0 | 1.000000 | 1.000000 | 1.000000e+05 | 1.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 20.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 3.000000 | 16.666667 |
| 25% | 60.500000 | 4.0 | 1.000000 | 1.000000 | 1.250000e+06 | 2.000000 | 0.000000 | 1.000000 | 1.000000 | 1.000000 | 0.000000 | 40.000000 | 0.000000 | 20.000000 | 33.333333 | 50.000000 | 0.000000 | 6.000000 | 33.333333 |
| 50% | 60.500000 | 4.0 | 1.000000 | 2.000000 | 5.000000e+06 | 2.000000 | 0.000000 | 2.000000 | 2.000000 | 1.000000 | 0.000000 | 40.000000 | 0.000000 | 40.000000 | 66.666667 | 50.000000 | 0.000000 | 8.000000 | 44.444444 |
| 75% | 65.000000 | 4.0 | 2.000000 | 2.000000 | 1.000000e+07 | 3.000000 | 1.000000 | 3.000000 | 2.000000 | 2.000000 | 0.000000 | 60.000000 | 50.000000 | 60.000000 | 66.666667 | 100.000000 | 0.000000 | 10.000000 | 55.555556 |
| max | 70.500000 | 4.0 | 3.000000 | 5.000000 | 5.250000e+07 | 4.000000 | 2.000000 | 5.000000 | 3.000000 | 2.000000 | 1.000000 | 80.000000 | 100.000000 | 100.000000 | 100.000000 | 100.000000 | 100.000000 | 13.000000 | 72.222222 |
In [ ]:
In [84]:
fig, ax1 = plt.subplots(figsize=(6, 6))
sns.regplot (data = df7.loc[(df7['age_rec']==2) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==1)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (data = df7.loc[(df7['age_rec']==2) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==2)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (data = df7.loc[(df7['age_rec']==2) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==3)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')
ax1.set(ylabel='Total Scores_14', xlabel='INCOME for age 18 to 35')
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
fig, ax2 = plt.subplots(figsize=(6, 6))
sns.regplot (data = df7.loc[(df7['age_rec']==3) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==1)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (data = df7.loc[(df7['age_rec']==3) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==2)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (data = df7.loc[(df7['age_rec']==3) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==3)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')
ax2.set(ylabel='Total Scores_14', xlabel='INCOME for age 36 to 55')
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
fig, ax3 = plt.subplots(figsize=(6, 6))
sns.regplot (data = df7.loc[(df7['age_rec']==4) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==1)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 1')
sns.regplot (data = df7.loc[(df7['age_rec']==4) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==2)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 2')
sns.regplot (data = df7.loc[(df7['age_rec']==4) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==3)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 3')
ax3.set(ylabel='Total Scores_14', xlabel='INCOME for age 56 and above')
ax3.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
In [85]:
fig, ax1 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==2) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==1)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==2) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==2)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==2) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==3)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')
ax1.errorbar(x = df7.loc[ df7['age_rec']==2 ]["income"].unique(), y = df7.loc[ df7['age_rec']==2 ].groupby(['income']).mean(numeric_only=True)['TotalScore_18'], yerr = df7.loc[ (df7['age_rec']==2) ].groupby(['income'])['TotalScore_18'].sem(), fmt='o', color = lighten_color('gray',0.5))
ax1.set(ylabel='Total Scores_14', xlabel='INCOME for age 18 to 35', yticks = np.arange(5, 16 , 1))
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
fig, ax2 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==3) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==1)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==3) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==2)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==3) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==3)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')
ax2.set(ylabel='Total Scores_14', xlabel='INCOME for age 36 to 55', yticks = np.arange(5, 16 , 1))
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax2.errorbar(x = df7.loc[ df7['age_rec']==3 ]["income"].unique(), y = df7.loc[ df7['age_rec']==3 ].groupby(['income']).mean(numeric_only=True)['TotalScore_18'], yerr = df7.loc[ (df7['age_rec']==3) ].groupby(['income'])['TotalScore_18'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()
fig, ax3 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==4) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==1)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==4) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==2)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==4) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==3)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 3')
ax3.set(ylabel='Total Scores_14', xlabel='INCOME for age 56 and above', yticks = np.arange(5, 16 , 1))
ax3.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax3.errorbar(x = df7.loc[ df7['age_rec']== 4 ]['income'].unique(), y = df7.loc[ df7['age_rec']==4 ].groupby(['income']).mean(numeric_only=True)['TotalScore_18'], yerr = df7.loc[ (df7['age_rec']==4) ].groupby(['income'])['TotalScore_18'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()
In [86]:
fig, ax1 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==2) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==1)]['Certainty_5'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==2) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==2)]['Certainty_5'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==2) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==3)]['Certainty_5'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')
ax1.set(ylabel='Certainty_5', xlabel='INCOME for age 18 to 35', yticks = np.arange(0, 6 , 1))
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax1.errorbar(x = df7.loc[ df7['age_rec']==2 ]["income"].unique(), y = df7.loc[ df7['age_rec']==2 ].groupby(['income'])['Certainty_5'].mean(), yerr = df7.loc[ (df7['age_rec']==2) ].groupby(['income'])['Certainty_5'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()
fig, ax2 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==3) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==1)]['Certainty_5'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==3) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==2)]['Certainty_5'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==3) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==3)]['Certainty_5'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')
ax2.set(ylabel='Certainty_5', xlabel='INCOME for age 36 to 55', yticks = np.arange(0, 6 , 1))
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax2.errorbar(x = df7.loc[ df7['age_rec']==3 ]["income"].unique(), y = df7.loc[ df7['age_rec']==3 ].groupby(['income'])['Certainty_5'].mean(), yerr = df7.loc[ (df7['age_rec']==3) ].groupby(['income'])['Certainty_5'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()
fig, ax3 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==4) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==1)]['Certainty_5'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==4) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==2)]['Certainty_5'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==4) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==3)]['Certainty_5'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 3')
ax3.set(ylabel='Certainty_5', xlabel='INCOME for age 56 and above', yticks = np.arange(0, 6 , 1))
ax3.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax3.errorbar(x = df7.loc[ df7['age_rec']== 4 ]['income'].unique(), y = df7.loc[ df7['age_rec']==4 ].groupby(['income'])['Certainty_5'].mean(), yerr = df7.loc[ (df7['age_rec']==4) ].groupby(['income'])['Certainty_5'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()
In [87]:
fig, ax1 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==2) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==1)]['RiskComprehension_5'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==2) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==2)]['RiskComprehension_5'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==2) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==3)]['RiskComprehension_5'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')
ax1.set(ylabel='RiskComprehension_5', xlabel='INCOME for age 18 to 35', yticks = np.arange(0, 3 , 1))
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax1.errorbar(x = df7.loc[ df7['age_rec']==2 ]["income"].unique(), y = df7.loc[ df7['age_rec']==2 ].groupby(['income'])['RiskComprehension_5'].mean(), yerr = df7.loc[ (df7['age_rec']==2) ].groupby(['income'])['RiskComprehension_5'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()
fig, ax2 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==3) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==1)]['RiskComprehension_5'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==3) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==2)]['RiskComprehension_5'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==3) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==3)]['RiskComprehension_5'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')
ax2.set(ylabel='RiskComprehension_5', xlabel='INCOME for age 36 to 55', yticks = np.arange(0, 3 , 1))
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax2.errorbar(x = df7.loc[ df7['age_rec']==3 ]["income"].unique(), y = df7.loc[ df7['age_rec']==3 ].groupby(['income'])['RiskComprehension_5'].mean(), yerr = df7.loc[ (df7['age_rec']==3) ].groupby(['income'])['RiskComprehension_5'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()
fig, ax3 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==4) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==1)]['RiskComprehension_5'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==4) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==2)]['RiskComprehension_5'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==4) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==3)]['RiskComprehension_5'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 3')
ax3.set(ylabel='RiskComprehension_5', xlabel='INCOME for age 56 and above', yticks = np.arange(0, 3 , 1))
ax3.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax3.errorbar(x = df7.loc[ df7['age_rec']== 4 ]['income'].unique(), y = df7.loc[ df7['age_rec']==4 ].groupby(['income'])['RiskComprehension_5'].mean(), yerr = df7.loc[ (df7['age_rec']==4) ].groupby(['income'])['RiskComprehension_5'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()
In [88]:
fig, ax1 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==2) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==1)]['Numeracy_2'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==2) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==2)]['Numeracy_2'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==2) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==3)]['Numeracy_2'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')
ax1.set(ylabel='Numeracy_2', xlabel='INCOME for age 18 to 35', yticks = np.arange(0, 6 , 1))
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax1.errorbar(x = df7.loc[ df7['age_rec']==2 ]["income"].unique(), y = df7.loc[ df7['age_rec']==2 ].groupby(['income'])['Numeracy_2'].mean(), yerr = df7.loc[ (df7['age_rec']==2) ].groupby(['income'])['Numeracy_2'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()
fig, ax2 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==3) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==1)]['Numeracy_2'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==3) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==2)]['Numeracy_2'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==3) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==3)]['Numeracy_2'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')
ax2.set(ylabel='Numeracy_2', xlabel='INCOME for age 36 to 55', yticks = np.arange(0, 6 , 1))
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax2.errorbar(x = df7.loc[ df7['age_rec']==3 ]["income"].unique(), y = df7.loc[ df7['age_rec']==3 ].groupby(['income'])['Numeracy_2'].mean(), yerr = df7.loc[ (df7['age_rec']==3) ].groupby(['income'])['Numeracy_2'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()
fig, ax3 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==4) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==1)]['Numeracy_2'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==4) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==2)]['Numeracy_2'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==4) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==3)]['Numeracy_2'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 3')
ax3.set(ylabel='Numeracy_2', xlabel='INCOME for age 56 and above', yticks = np.arange(0, 6 , 1))
ax3.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax3.errorbar(x = df7.loc[ df7['age_rec']== 4 ]['income'].unique(), y = df7.loc[ df7['age_rec']==4 ].groupby(['income'])['Numeracy_2'].mean(), yerr = df7.loc[ (df7['age_rec']==4) ].groupby(['income'])['Numeracy_2'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()
In [89]:
fig, ax1 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==2) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==1)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==2) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==2)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==2) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==3)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')
ax1.set(ylabel='GraphLiteracy_3', xlabel='INCOME for age 18 to 35', yticks = np.arange(0, 4 , 1))
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax1.errorbar(x = df7.loc[ df7['age_rec']==2 ]["income"].unique(), y = df7.loc[ df7['age_rec']==2 ].groupby(['income'])['GraphLiteracy_3'].mean(), yerr = df7.loc[ (df7['age_rec']==2) ].groupby(['income'])['GraphLiteracy_3'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()
fig, ax2 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==3) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==1)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==3) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==2)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==3) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==3)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')
ax2.set(ylabel='GraphLiteracy_3', xlabel='INCOME for age 36 to 55', yticks = np.arange(0, 4 , 1))
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax2.errorbar(x = df7.loc[ df7['age_rec']==3 ]["income"].unique(), y = df7.loc[ df7['age_rec']==3 ].groupby(['income'])['GraphLiteracy_3'].mean(), yerr = df7.loc[ (df7['age_rec']==3) ].groupby(['income'])['GraphLiteracy_3'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()
fig, ax3 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==4) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==1)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==4) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==2)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==4) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==3)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 3')
ax3.set(ylabel='GraphLiteracy_3', xlabel='INCOME for age 56 and above', yticks = np.arange(0, 4 , 1))
ax3.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax3.errorbar(x = df7.loc[ df7['age_rec']== 4 ]['income'].unique(), y = df7.loc[ df7['age_rec']==4 ].groupby(['income'])['GraphLiteracy_3'].mean(), yerr = df7.loc[ (df7['age_rec']==4) ].groupby(['income'])['GraphLiteracy_3'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()
In [90]:
fig, ax1 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==2) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==1)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==2) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==2)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==2) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==3)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')
ax1.set(ylabel='Bayesianreasoning_1', xlabel='INCOME for age 18 to 35', yticks = np.arange(0, 5 , 1))
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax1.errorbar(x = df7.loc[ df7['age_rec']==2 ]["income"].unique(), y = df7.loc[ df7['age_rec']==2 ].groupby(['income'])['Bayesianreasoning_1'].mean(), yerr = df7.loc[ (df7['age_rec']==2) ].groupby(['income'])['Bayesianreasoning_1'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()
fig, ax2 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==3) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==1)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==3) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==2)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==3) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==3)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')
ax2.set(ylabel='Bayesianreasoning_1', xlabel='INCOME for age 36 to ', yticks = np.arange(0, 5 , 1))
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax2.errorbar(x = df7.loc[ df7['age_rec']==3 ]["income"].unique(), y = df7.loc[ df7['age_rec']==3 ].groupby(['income'])['Bayesianreasoning_1'].mean(), yerr = df7.loc[ (df7['age_rec']==3) ].groupby(['income'])['Bayesianreasoning_1'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()
fig, ax3 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==4) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==1)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==4) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==2)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==4) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==3)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 3')
ax3.set(ylabel='Bayesianreasoning_1', xlabel='INCOME for age 56 and above', yticks = np.arange(0, 5 , 1))
ax3.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax3.errorbar(x = df7.loc[ df7['age_rec']== 4 ]['income'].unique(), y = df7.loc[ df7['age_rec']==4 ].groupby(['income'])['Bayesianreasoning_1'].mean(), yerr = df7.loc[ (df7['age_rec']==4) ].groupby(['income'])['Bayesianreasoning_1'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()
In [91]:
# Age mean method
# Age_mean
In [92]:
age_m = df2["age"].median()
age_m
Out[92]:
30.5
In [ ]:
In [93]:
df7["income"].value_counts()
Out[93]:
income 2 329 1 298 3 110 4 65 5 37 Name: count, dtype: int64
In [94]:
df7.loc[(df7['age'] < age_m)].describe()
Out[94]:
| age | age_rec | isced | income | wealth | Certainty_5 | Uncertainty_2 | RiskComprehension_5 | GraphLiteracy_3 | Numeracy_2 | Bayesianreasoning_1 | Certainty_% | Uncertainty_% | RiskComprehension_% | GraphLiteracy_% | Numeracy_% | Bayesianreasoning_% | TotalScore_18 | TotalScore_% | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| count | 298.000000 | 298.000000 | 298.000000 | 298.000000 | 2.980000e+02 | 298.000000 | 298.000000 | 298.000000 | 298.000000 | 298.000000 | 298.000000 | 298.000000 | 298.000000 | 298.000000 | 298.000000 | 298.000000 | 298.000000 | 298.000000 | 298.000000 |
| mean | 23.206376 | 1.993289 | 1.869128 | 1.788591 | 7.382464e+06 | 3.036913 | 0.553691 | 2.171141 | 1.459732 | 1.151007 | 0.271812 | 60.738255 | 27.684564 | 43.422819 | 48.657718 | 57.550336 | 27.181208 | 8.644295 | 48.023863 |
| std | 3.435092 | 0.115857 | 0.635366 | 1.050383 | 3.704148e+07 | 1.248021 | 0.665759 | 0.939718 | 0.984761 | 0.804459 | 0.445642 | 24.960412 | 33.287967 | 18.794362 | 32.825354 | 40.222937 | 44.564190 | 2.504068 | 13.911487 |
| min | 16.000000 | 0.000000 | 1.000000 | 1.000000 | 0.000000e+00 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 2.000000 | 11.111111 |
| 25% | 21.000000 | 2.000000 | 1.000000 | 1.000000 | 1.000000e+05 | 2.000000 | 0.000000 | 2.000000 | 1.000000 | 0.000000 | 0.000000 | 40.000000 | 0.000000 | 40.000000 | 33.333333 | 0.000000 | 0.000000 | 7.000000 | 38.888889 |
| 50% | 22.000000 | 2.000000 | 2.000000 | 1.000000 | 5.000000e+05 | 4.000000 | 0.000000 | 2.000000 | 1.000000 | 1.000000 | 0.000000 | 80.000000 | 0.000000 | 40.000000 | 33.333333 | 50.000000 | 0.000000 | 9.000000 | 50.000000 |
| 75% | 26.000000 | 2.000000 | 2.000000 | 2.000000 | 2.000000e+06 | 4.000000 | 1.000000 | 3.000000 | 2.000000 | 2.000000 | 1.000000 | 80.000000 | 50.000000 | 60.000000 | 66.666667 | 100.000000 | 100.000000 | 10.000000 | 55.555556 |
| max | 30.000000 | 2.000000 | 3.000000 | 5.000000 | 5.000000e+08 | 4.000000 | 2.000000 | 5.000000 | 3.000000 | 2.000000 | 1.000000 | 80.000000 | 100.000000 | 100.000000 | 100.000000 | 100.000000 | 100.000000 | 15.000000 | 83.333333 |
In [95]:
df7.loc[(df7['age'] >= age_m)].describe()
Out[95]:
| age | age_rec | isced | income | wealth | Certainty_5 | Uncertainty_2 | RiskComprehension_5 | GraphLiteracy_3 | Numeracy_2 | Bayesianreasoning_1 | Certainty_% | Uncertainty_% | RiskComprehension_% | GraphLiteracy_% | Numeracy_% | Bayesianreasoning_% | TotalScore_18 | TotalScore_% | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| count | 541.000000 | 541.000000 | 541.000000 | 541.000000 | 5.410000e+02 | 541.000000 | 541.000000 | 541.000000 | 541.000000 | 541.000000 | 541.000000 | 541.000000 | 541.000000 | 541.000000 | 541.000000 | 541.000000 | 541.000000 | 541.000000 | 541.000000 |
| mean | 38.018484 | 2.550832 | 1.423290 | 2.214418 | 1.078387e+07 | 2.179298 | 0.421442 | 2.216266 | 1.293900 | 1.033272 | 0.197782 | 43.585952 | 21.072089 | 44.325323 | 43.130006 | 51.663586 | 19.778189 | 7.341959 | 40.788663 |
| std | 9.235180 | 0.608356 | 0.561193 | 1.084510 | 4.690035e+07 | 1.263159 | 0.589902 | 1.084996 | 0.968265 | 0.792793 | 0.398695 | 25.263180 | 29.495078 | 21.699921 | 32.275495 | 39.639645 | 39.869541 | 2.530458 | 14.058100 |
| min | 30.500000 | 2.000000 | 1.000000 | 1.000000 | 0.000000e+00 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 1.000000 | 5.555556 |
| 25% | 30.500000 | 2.000000 | 1.000000 | 1.000000 | 3.000000e+05 | 1.000000 | 0.000000 | 1.000000 | 1.000000 | 0.000000 | 0.000000 | 20.000000 | 0.000000 | 20.000000 | 33.333333 | 0.000000 | 0.000000 | 6.000000 | 33.333333 |
| 50% | 35.000000 | 2.000000 | 1.000000 | 2.000000 | 1.200000e+06 | 2.000000 | 0.000000 | 2.000000 | 1.000000 | 1.000000 | 0.000000 | 40.000000 | 0.000000 | 40.000000 | 33.333333 | 50.000000 | 0.000000 | 7.000000 | 38.888889 |
| 75% | 40.500000 | 3.000000 | 2.000000 | 3.000000 | 5.000000e+06 | 3.000000 | 1.000000 | 3.000000 | 2.000000 | 2.000000 | 0.000000 | 60.000000 | 50.000000 | 60.000000 | 66.666667 | 100.000000 | 0.000000 | 9.000000 | 50.000000 |
| max | 70.500000 | 4.000000 | 3.000000 | 5.000000 | 6.000000e+08 | 5.000000 | 2.000000 | 5.000000 | 3.000000 | 2.000000 | 1.000000 | 100.000000 | 100.000000 | 100.000000 | 100.000000 | 100.000000 | 100.000000 | 14.000000 | 77.777778 |
In [96]:
fig, ax1 = plt.subplots(figsize=(6, 6))
sns.regplot (data = df7.loc[(df7['age'] < age_m) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==1)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (data = df7.loc[(df7['age'] < age_m) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==2)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (data = df7.loc[(df7['age'] < age_m) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==3)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')
ax1.set(ylabel='Total Scores_19', xlabel='INCOME for < median age')
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
fig, ax2 = plt.subplots(figsize=(6, 6))
sns.regplot (data = df7.loc[(df7['age'] >= age_m) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==1)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (data = df7.loc[(df7['age'] >=age_m) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==2)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (data = df7.loc[(df7['age'] >=age_m) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==3)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')
ax2.set(ylabel='Total Scores_19', xlabel='INCOME for >=median age')
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
In [97]:
fig, ax1 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df7.loc[(df7['age'] < age_m) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==1)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] < age_m) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==2)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] < age_m) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==3)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')
ax1.errorbar(x = df7.loc[ (df7['age'] < age_m) ]["income"].unique(), y = df7.loc[ (df7['age'] < age_m) ].groupby(['income'])['TotalScore_18'].mean(), yerr = df7.loc[ (df7['age'] < age_m) ].groupby(['income'])['TotalScore_18'].sem(), fmt='o', color = lighten_color('gray',0.5))
ax1.set(ylabel='Total Scores_19', xlabel='INCOME for < median age', yticks = np.arange(5, 16 , 1))
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
fig, ax2 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df7.loc[(df7['age'] >=age_m) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==1)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] >=age_m) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==2)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] >=age_m) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==3)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')
ax2.errorbar(x = df7.loc[ (df7['age'] >= age_m) ]["income"].unique(), y = df7.loc[ (df7['age'] >=age_m) ].groupby(['income'])['TotalScore_18'].mean(), yerr = df7.loc[ (df7['age'] >=age_m) ].groupby(['income'])['TotalScore_18'].sem(), fmt='o', color = lighten_color('gray',0.5))
ax2.set(ylabel='Total Scores_19', xlabel='INCOME for >=median age', yticks = np.arange(5, 16 , 1))
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
In [98]:
fig, ax1 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df7.loc[(df7['age'] < age_m) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==1)]['Certainty_5'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] < age_m) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==2)]['Certainty_5'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] < age_m) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==3)]['Certainty_5'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')
ax1.errorbar(x = df7.loc[ (df7['age'] < age_m) ]["income"].unique(), y = df7.loc[ (df7['age'] < age_m) ].groupby(['income'])['Certainty_5'].mean(), yerr = df7.loc[ (df7['age'] < age_m) ].groupby(['income'])['Certainty_5'].sem(), fmt='o', color = lighten_color('gray',0.5))
ax1.set(ylabel='Certainty_5', xlabel='INCOME for < median age', yticks = np.arange(0, 6 , 1))
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
fig, ax2 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df7.loc[(df7['age'] >=age_m) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==1)]['Certainty_5'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] >=age_m) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==2)]['Certainty_5'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] >=age_m) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==3)]['Certainty_5'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')
ax2.errorbar(x = df7.loc[ (df7['age'] >= age_m) ]["income"].unique(), y = df7.loc[ (df7['age'] >=age_m) ].groupby(['income'])['Certainty_5'].mean(), yerr = df7.loc[ (df7['age'] >=age_m) ].groupby(['income'])['Certainty_5'].sem(), fmt='o', color = lighten_color('gray',0.5))
ax2.set(ylabel='Certainty_5', xlabel='INCOME for >=median age')
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
In [99]:
fig, ax1 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df7.loc[(df7['age'] < age_m) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==1)]['RiskComprehension_5'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] < age_m) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==2)]['RiskComprehension_5'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] < age_m) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==3)]['RiskComprehension_5'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')
ax1.errorbar(x = df7.loc[ (df7['age'] < age_m) ]["income"].unique(), y = df7.loc[ (df7['age'] < age_m) ].groupby(['income'])['RiskComprehension_5'].mean(), yerr = df7.loc[ (df7['age'] < age_m) ].groupby(['income'])['RiskComprehension_5'].sem(), fmt='o', color = lighten_color('gray',0.5))
ax1.set(ylabel='RiskComprehension_5', xlabel='INCOME for < median age', yticks = np.arange(0, 3 , 1))
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
fig, ax2 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df7.loc[(df7['age'] >=age_m) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==1)]['RiskComprehension_5'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] >=age_m) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==2)]['RiskComprehension_5'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] >=age_m) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==3)]['RiskComprehension_5'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')
ax2.errorbar(x = df7.loc[ (df7['age'] >= age_m) ]["income"].unique(), y = df7.loc[ (df7['age'] >=age_m) ].groupby(['income'])['RiskComprehension_5'].mean(), yerr = df7.loc[ (df7['age'] >=age_m) ].groupby(['income'])['RiskComprehension_5'].sem(), fmt='o', color = lighten_color('gray',0.5))
ax2.set(ylabel='RiskComprehension_5', xlabel='INCOME for >=median age', yticks = np.arange(0, 3 , 1))
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
In [100]:
fig, ax1 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df7.loc[(df7['age'] < age_m) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==1)]['Numeracy_2'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] < age_m) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==2)]['Numeracy_2'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] < age_m) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==3)]['Numeracy_2'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')
ax1.errorbar(x = df7.loc[ (df7['age'] < age_m) ]["income"].unique(), y = df7.loc[ (df7['age'] < age_m) ].groupby(['income'])['Numeracy_2'].mean(), yerr = df7.loc[ (df7['age'] < age_m) ].groupby(['income'])['Numeracy_2'].sem(), fmt='o', color = lighten_color('gray',0.5))
ax1.set(ylabel='Numeracy_2', xlabel='INCOME for < median age', yticks = np.arange(0, 6 , 1))
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
fig, ax2 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df7.loc[(df7['age'] >=age_m) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==1)]['Numeracy_2'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] >=age_m) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==2)]['Numeracy_2'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] >=age_m) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==3)]['Numeracy_2'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')
ax2.errorbar(x = df7.loc[ (df7['age'] >= age_m) ]["income"].unique(), y = df7.loc[ (df7['age'] >=age_m) ].groupby(['income'])['Numeracy_2'].mean(), yerr = df7.loc[ (df7['age'] >=age_m) ].groupby(['income'])['Numeracy_2'].sem(), fmt='o', color = lighten_color('gray',0.5))
ax2.set(ylabel='Numeracy_2', xlabel='INCOME for >=median age', yticks = np.arange(0, 6 , 1))
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
In [101]:
fig, ax1 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df7.loc[(df7['age'] < age_m) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==1)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] < age_m) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==2)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] < age_m) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==3)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')
ax1.errorbar(x = df7.loc[ (df7['age'] < age_m) ]["income"].unique(), y = df7.loc[ (df7['age'] < age_m) ].groupby(['income'])['GraphLiteracy_3'].mean(), yerr = df7.loc[ (df7['age'] < age_m) ].groupby(['income'])['GraphLiteracy_3'].sem(), fmt='o', color = lighten_color('gray',0.5))
ax1.set(ylabel='GraphLiteracy_3', xlabel='INCOME for < median age', yticks = np.arange(0, 4 , 1))
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
fig, ax2 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df7.loc[(df7['age'] >=age_m) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==1)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] >=age_m) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==2)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] >=age_m) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==3)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')
ax2.errorbar(x = df7.loc[ (df7['age'] >= age_m) ]["income"].unique(), y = df7.loc[ (df7['age'] >=age_m) ].groupby(['income'])['GraphLiteracy_3'].mean(), yerr = df7.loc[ (df7['age'] >=age_m) ].groupby(['income'])['GraphLiteracy_3'].sem(), fmt='o', color = lighten_color('gray',0.5))
ax2.set(ylabel='GraphLiteracy_3', xlabel='INCOME for >=median age', yticks = np.arange(0, 4 , 1))
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
In [102]:
fig, ax1 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df7.loc[(df7['age'] < age_m) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==1)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] < age_m) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==2)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] < age_m) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==3)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')
ax1.errorbar(x = df7.loc[ (df7['age'] < age_m) ]["income"].unique(), y = df7.loc[ (df7['age'] < age_m) ].groupby(['income'])['Bayesianreasoning_1'].mean(), yerr = df7.loc[ (df7['age'] < age_m) ].groupby(['income'])['Bayesianreasoning_1'].sem(), fmt='o', color = lighten_color('gray',0.5))
ax1.set(ylabel='Bayesianreasoning_1', xlabel='INCOME for < median age', yticks = np.arange(0, 5 , 1))
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
fig, ax2 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df7.loc[(df7['age'] >=age_m) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==1)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] >=age_m) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==2)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] >=age_m) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==3)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')
ax2.errorbar(x = df7.loc[ (df7['age'] >= age_m) ]["income"].unique(), y = df7.loc[ (df7['age'] >=age_m) ].groupby(['income'])['Bayesianreasoning_1'].mean(), yerr = df7.loc[ (df7['age'] >=age_m) ].groupby(['income'])['Bayesianreasoning_1'].sem(), fmt='o', color = lighten_color('gray',0.5))
ax2.set(ylabel='Bayesianreasoning_1', xlabel='INCOME for >=median age', yticks = np.arange(0, 5 , 1))
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
In [ ]:
In [ ]:
In [ ]:
In [ ]:
In [ ]:
In [ ]:
In [ ]:
In [ ]:
WEALTH¶
In [103]:
# Data Frame 2 or df2 is an aggregate data on facet total scores and over all total score, along with wealth and income data vs each response.
# This data set is also sorted by wealth with all responses 'NA' removed.
# We also assign quartiles ranking each response according to this sort.
df4 = df2.sort_values(by = 'wealth')
df4 = df4.reset_index(drop = True)
df4 = df4.dropna(axis = 0, subset = 'wealth')
df4.insert(loc = len(df4.columns), column = "Quartile Number", value = pd.qcut(df4["wealth"],q = 4, labels = False ) + 1, allow_duplicates = 'False')
df4
Out[103]:
| ResponseId | age | age_rec | isced | income | wealth | Certainty_5 | Uncertainty_2 | RiskComprehension_5 | GraphLiteracy_3 | Numeracy_2 | Bayesianreasoning_1 | Certainty_% | Uncertainty_% | RiskComprehension_% | GraphLiteracy_% | Numeracy_% | Bayesianreasoning_% | TotalScore_18 | TotalScore_% | Quartile Number | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | R_4MJAzsNYYA69Y8p | 27.0 | 2 | 3 | 1 | 0.0 | 4 | 1 | 3 | 1 | 0 | 1 | 80.0 | 50.0 | 60.0 | 33.333333 | 0.0 | 100.0 | 10 | 55.555556 | 1 |
| 1 | R_41bfnamM0zpH94i | 30.0 | 2 | 1 | 2 | 0.0 | 4 | 0 | 2 | 1 | 1 | 1 | 80.0 | 0.0 | 40.0 | 33.333333 | 50.0 | 100.0 | 9 | 50.000000 | 1 |
| 2 | e7ty2tbwa1hcmte7ty683aw64pla7689 | 30.5 | 2 | 2 | 1 | 0.0 | 1 | 0 | 2 | 1 | 1 | 0 | 20.0 | 0.0 | 40.0 | 33.333333 | 50.0 | 0.0 | 5 | 27.777778 | 1 |
| 3 | R_4lnmGavSf6rw1eE | 31.0 | 2 | 1 | 1 | 0.0 | 1 | 0 | 2 | 1 | 2 | 0 | 20.0 | 0.0 | 40.0 | 33.333333 | 100.0 | 0.0 | 6 | 33.333333 | 1 |
| 4 | R_4DPGUOAP86yO30R | 19.0 | 2 | 3 | 1 | 0.0 | 4 | 2 | 1 | 2 | 1 | 1 | 80.0 | 100.0 | 20.0 | 66.666667 | 50.0 | 100.0 | 11 | 61.111111 | 1 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 834 | lmoqk1qcf44jqqudwkplmoqk18cao0fs | 40.5 | 3 | 1 | 2 | 400000000.0 | 2 | 0 | 1 | 1 | 1 | 0 | 40.0 | 0.0 | 20.0 | 33.333333 | 50.0 | 0.0 | 5 | 27.777778 | 4 |
| 835 | wn9mk6m1k8o10l1twn9mk6b4z7l7yvhc | 50.5 | 3 | 1 | 3 | 500000000.0 | 2 | 0 | 3 | 3 | 2 | 0 | 40.0 | 0.0 | 60.0 | 100.000000 | 100.0 | 0.0 | 10 | 55.555556 | 4 |
| 836 | oczyh23wpxpk4o0teoczy5zzzng3i6kk | 30.5 | 2 | 2 | 5 | 500000000.0 | 1 | 0 | 3 | 3 | 2 | 0 | 20.0 | 0.0 | 60.0 | 100.000000 | 100.0 | 0.0 | 9 | 50.000000 | 4 |
| 837 | 35zux4sc18rplyz3dc85z35zux4sdfm4 | 21.5 | 2 | 2 | 4 | 500000000.0 | 2 | 0 | 1 | 0 | 1 | 0 | 40.0 | 0.0 | 20.0 | 0.000000 | 50.0 | 0.0 | 4 | 22.222222 | 4 |
| 838 | zcj7ldokhyo6217f9sriwizcj7ldodwt | 40.5 | 3 | 2 | 3 | 600000000.0 | 3 | 1 | 2 | 1 | 2 | 1 | 60.0 | 50.0 | 40.0 | 33.333333 | 100.0 | 100.0 | 10 | 55.555556 | 4 |
839 rows × 21 columns
In [104]:
# Trend line for Absolute Total Facet Score vs unique wealth reponses
sns.regplot (data = df4, x = df4.index, y = 'TotalScore_18')
Out[104]:
<Axes: ylabel='TotalScore_18'>
In [105]:
# Trend line for Absolute Independent Facet Score vs wealth reponses
fig1, ax1 = plt.subplots(figsize=(6, 6))
sns.regplot (data = df4, x = df4.index, y = 'Certainty_5', fit_reg=True, ci=None, ax=ax1, label='Certainty_5')
sns.regplot (data = df4, x = df4.index, y = 'RiskComprehension_5', fit_reg=True, ci=None, ax=ax1, label='RiskComprehension_5')
sns.regplot (data = df4, x = df4.index, y = 'Numeracy_2', fit_reg=True, ci=None, ax=ax1, label='Numeracy_2')
sns.regplot (data = df4, x = df4.index, y = 'GraphLiteracy_3', fit_reg=True, ci=None, ax=ax1, label='GraphLiteracy_3')
sns.regplot (data = df4, x = df4.index, y = 'Bayesianreasoning_1',fit_reg=True, ci=None, ax=ax1, label='Bayesianreasoning_1' )
ax1.set(ylabel='Scores', xlabel='wealth')
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
In [106]:
# Count of number of responses under each quartile
df4.groupby('Quartile Number')[['Quartile Number']].count()
Out[106]:
| Quartile Number | |
|---|---|
| Quartile Number | |
| 1 | 221 |
| 2 | 252 |
| 3 | 195 |
| 4 | 171 |
In [ ]:
In [107]:
# Absolute Total Facet scores mean line plot from low to high Wealth
df4.groupby('Quartile Number')[['TotalScore_18']].mean().plot( kind = 'line', title = 'Absolute Total Facet scores mean line plot low to high wealth', xticks = np.arange(1,5,step = 1)).legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
Out[107]:
<matplotlib.legend.Legend at 0x293e6086410>
In [108]:
# Absolute Facet scores mean line plot from low to high wealth
df4.groupby('Quartile Number')[['Certainty_5', "Uncertainty_2", 'RiskComprehension_5','Numeracy_2','GraphLiteracy_3','Bayesianreasoning_1']].mean().plot( kind = 'line', title = 'Absolute Facet scores mean line plot low to high wealth', xticks = np.arange(1,5,step = 1)).legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
Out[108]:
<matplotlib.legend.Legend at 0x293e66c8c90>
In [109]:
# Normalised Facet scores mean line plot from low to high wealth
df4.groupby('Quartile Number')[['Certainty_%', "Uncertainty_%", 'RiskComprehension_%','Numeracy_%','GraphLiteracy_%','Bayesianreasoning_%','TotalScore_%']].mean().plot( kind = 'line', title = '% Facet scores mean line plot from low to high wealth', xticks = np.arange(1,5,step = 1)).legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
Out[109]:
<matplotlib.legend.Legend at 0x293e749cb50>
In [110]:
# Normalised mean scores for each facet stacked
df4.groupby('Quartile Number')[['Certainty_%', "Uncertainty_%", 'RiskComprehension_%','Numeracy_%','GraphLiteracy_%','Bayesianreasoning_%']].mean().plot( kind = 'bar', title = '% mean scores for each facet stacked', stacked = True).legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
Out[110]:
<matplotlib.legend.Legend at 0x293ec890ad0>
In [111]:
# Normalised mean scores for each facet for each wealth response Quartile
df4.groupby('Quartile Number')[['Certainty_%', "Uncertainty_%", 'RiskComprehension_%','Numeracy_%','GraphLiteracy_%','Bayesianreasoning_%','TotalScore_%']].mean().T.plot(kind = 'bar', title = '% mean scores for each facet for each wealth response category').legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
Out[111]:
<matplotlib.legend.Legend at 0x293e73a59d0>
In [112]:
# Trend line for Absolute Total Facet Score vs Quartiles
sns.regplot (data = df4, x = 'Quartile Number', y = 'TotalScore_18')
Out[112]:
<Axes: xlabel='Quartile Number', ylabel='TotalScore_18'>
In [113]:
# Trend line for Absolute Independent Facet Score vs Quartiles
fig2, ax2 = plt.subplots(figsize=(6, 6))
sns.regplot (data = df4, x = 'Quartile Number', y = 'Certainty_5', fit_reg=True, ci=None, ax=ax2, label='Certainty_5')
sns.regplot (data = df4, x = 'Quartile Number', y = 'Uncertainty_2', fit_reg=True, ci=None, ax=ax2, label='Uncertainty_2')
sns.regplot (data = df4, x = 'Quartile Number', y = 'RiskComprehension_5', fit_reg=True, ci=None, ax=ax2, label='RiskComprehension_5')
sns.regplot (data = df4, x = 'Quartile Number', y = 'Numeracy_2', fit_reg=True, ci=None, ax=ax2, label='Numeracy_2')
sns.regplot (data = df4, x = 'Quartile Number', y = 'GraphLiteracy_3', fit_reg=True, ci=None, ax=ax2, label='GraphLiteracy_3')
sns.regplot (data = df4, x = 'Quartile Number', y = 'Bayesianreasoning_1',fit_reg=True, ci=None, ax=ax2, label='Bayesianreasoning_1' )
ax2.set(ylabel='Scores', xlabel='wealth')
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
In [114]:
# Violine Plot for TotalScore_18 for each entry under Wealth Quartiles.
sns.violinplot( data = df4, x = 'Quartile Number', y = 'TotalScore_18')
Out[114]:
<Axes: xlabel='Quartile Number', ylabel='TotalScore_18'>
In [115]:
# Violine Plot for Certainty_5 for each entry under Wealth Quartiles.
sns.violinplot( data = df4, x = 'Quartile Number', y = 'Certainty_5')
Out[115]:
<Axes: xlabel='Quartile Number', ylabel='Certainty_5'>
In [116]:
# Violine Plot for Certainty_5 for each entry under Wealth Quartiles.
sns.violinplot( data = df4, x = 'Quartile Number', y = 'Uncertainty_2')
Out[116]:
<Axes: xlabel='Quartile Number', ylabel='Uncertainty_2'>
In [117]:
# Violine Plot for RiskComprehension_5 for each entry under Wealth Quartiles.
sns.violinplot( data = df4, x = 'Quartile Number', y = 'RiskComprehension_5')
Out[117]:
<Axes: xlabel='Quartile Number', ylabel='RiskComprehension_5'>
In [118]:
# Violine Plot for GraphLiteracy_3 for each entry under Wealth Quartiles.
sns.violinplot( data = df4, x = 'Quartile Number', y = 'GraphLiteracy_3')
Out[118]:
<Axes: xlabel='Quartile Number', ylabel='GraphLiteracy_3'>
In [119]:
# Violine Plot for Numeracy_2 for each entry under Wealth Quartiles.
sns.violinplot( data = df4, x = 'Quartile Number', y = 'Numeracy_2')
Out[119]:
<Axes: xlabel='Quartile Number', ylabel='Numeracy_2'>
In [120]:
# Violine Plot for Bayesianreasoning_1 for each entry under Wealth Quartiles.
sns.violinplot( data = df4, x = 'Quartile Number', y = 'Bayesianreasoning_1')
Out[120]:
<Axes: xlabel='Quartile Number', ylabel='Bayesianreasoning_1'>
In [ ]:
In [ ]:
WEALTH vs SCORES w/ ISCED classification¶
In [121]:
# Descriptive stats for the data set, isced = 1
# NA values of wealth are removed
df6 = df5.dropna(axis = 0, subset = 'wealth')
# df6.drop(df6[df6['wealth'] == 3500000].index, inplace = True)
df6.loc[df6['isced']==1][['wealth']].describe()
Out[121]:
| wealth | |
|---|---|
| count | 4.130000e+02 |
| mean | 1.020335e+07 |
| std | 3.794182e+07 |
| min | 0.000000e+00 |
| 25% | 3.000000e+05 |
| 50% | 1.200000e+06 |
| 75% | 5.000000e+06 |
| max | 5.000000e+08 |
In [122]:
# Descriptive stats for the data set, isced = 2
df6.loc[df6['isced']==2][['wealth']].describe()
Out[122]:
| wealth | |
|---|---|
| count | 3.640000e+02 |
| mean | 9.861171e+06 |
| std | 5.225548e+07 |
| min | 0.000000e+00 |
| 25% | 2.000000e+05 |
| 50% | 6.000000e+05 |
| 75% | 3.000000e+06 |
| max | 6.000000e+08 |
In [123]:
# Descriptive stats for the data set, isced = 3
df6.loc[df6['isced']==3][['wealth']].describe()
Out[123]:
| wealth | |
|---|---|
| count | 6.200000e+01 |
| mean | 3.719399e+06 |
| std | 1.336024e+07 |
| min | 0.000000e+00 |
| 25% | 5.000000e+04 |
| 50% | 2.000000e+05 |
| 75% | 1.500000e+06 |
| max | 1.000000e+08 |
In [124]:
# Trend line for Absolute Tota Facet Score vs wealth reponses sorted by isced and ORDERED by wealth WITH scatter
fig, ax7 = plt.subplots(figsize=(6, 6))
sns.regplot (data = df6.loc[df6['isced']==1].reset_index(drop = True), x = df6.loc[df6['isced']==1].reset_index(drop = True)['wealth'], y = 'TotalScore_18', fit_reg=True, ci=None, ax=ax7, label='ISCED = 1')
sns.regplot (data = df6.loc[df6['isced']==2].reset_index(drop = True), x = df6.loc[df6['isced']==2].reset_index(drop = True)['wealth'], y = 'TotalScore_18', fit_reg=True, ci=None, ax=ax7, label='ISCED = 2')
sns.regplot (data = df6.loc[df6['isced']==3].reset_index(drop = True), x = df6.loc[df6['isced']==3].reset_index(drop = True)['wealth'], y = 'TotalScore_18', fit_reg=True, ci=None, ax=ax7, label='ISCED = 3')
ax7.set(ylabel='Total Scores_19', xlabel='Wealth')
ax7.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
In [125]:
# Trend line for Absolute Tota Facet Score vs wealth reponses sorted by isced and ORDERED by wealth WITHOUT scatter
fig, ax8 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df6.loc[df6['isced']==1].reset_index(drop = True), x = df6.loc[df6['isced']==1].reset_index(drop = True)['wealth'], y = 'TotalScore_18', fit_reg=True, ci=None, ax=ax8, label='ISCED = 1')
sns.regplot (scatter = False, data = df6.loc[df6['isced']==2].reset_index(drop = True), x = df6.loc[df6['isced']==2].reset_index(drop = True)['wealth'], y = 'TotalScore_18', fit_reg=True, ci=None, ax=ax8, label='ISCED = 2')
sns.regplot (scatter = False, data = df6.loc[df6['isced']==3].reset_index(drop = True), x = df6.loc[df6['isced']==3].reset_index(drop = True)['wealth'], y = 'TotalScore_18', fit_reg=True, ci=None, ax=ax8, label='ISCED = 3')
ax8.set(ylabel='Total Scores_19', xlabel='Wealth')
ax8.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
In [126]:
# Trend line for Absolute Certainty Score vs wealth reponses sorted by isced and ORDERED by wealth WITHOUT scatter
fig, ax9 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df6.loc[df6['isced']==1].reset_index(drop = True), x = df6.loc[df6['isced']==1].reset_index(drop = True)['wealth'], y = 'Certainty_5', fit_reg=True, ci=None, ax=ax9, label='ISCED = 1')
sns.regplot (scatter = False, data = df6.loc[df6['isced']==2].reset_index(drop = True), x = df6.loc[df6['isced']==2].reset_index(drop = True)['wealth'], y = 'Certainty_5', fit_reg=True, ci=None, ax=ax9, label='ISCED = 2')
sns.regplot (scatter = False, data = df6.loc[df6['isced']==3].reset_index(drop = True), x = df6.loc[df6['isced']==3].reset_index(drop = True)['wealth'], y = 'Certainty_5', fit_reg=True, ci=None, ax=ax9, label='ISCED = 3')
ax9.set(ylabel='Certainty_5', xlabel='Wealth')
ax9.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
In [127]:
# Trend line for Absolute Uncertainty Score vs wealth reponses sorted by isced and ORDERED by wealth WITHOUT scatter
fig, ax10 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df6.loc[df6['isced']==1].reset_index(drop = True), x = df6.loc[df6['isced']==1].reset_index(drop = True)['wealth'], y = 'RiskComprehension_5', fit_reg=True, ci=None, ax=ax10, label='ISCED = 1')
sns.regplot (scatter = False, data = df6.loc[df6['isced']==2].reset_index(drop = True), x = df6.loc[df6['isced']==2].reset_index(drop = True)['wealth'], y = 'RiskComprehension_5', fit_reg=True, ci=None, ax=ax10, label='ISCED = 2')
sns.regplot (scatter = False, data = df6.loc[df6['isced']==3].reset_index(drop = True), x = df6.loc[df6['isced']==3].reset_index(drop = True)['wealth'], y = 'RiskComprehension_5', fit_reg=True, ci=None, ax=ax10, label='ISCED = 3')
ax10.set(ylabel='RiskComprehension_5', xlabel='Wealth')
ax10.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
In [128]:
# Trend line for Absolute Number Comprehension Score vs wealth reponses sorted by isced and ORDERED by wealth WITHOUT scatter
fig, ax11 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df6.loc[df6['isced']==1].reset_index(drop = True), x = df6.loc[df6['isced']==1].reset_index(drop = True)['wealth'], y = 'Numeracy_2', fit_reg=True, ci=None, ax=ax11, label='ISCED = 1')
sns.regplot (scatter = False, data = df6.loc[df6['isced']==2].reset_index(drop = True), x = df6.loc[df6['isced']==2].reset_index(drop = True)['wealth'], y = 'Numeracy_2', fit_reg=True, ci=None, ax=ax11, label='ISCED = 2')
sns.regplot (scatter = False, data = df6.loc[df6['isced']==3].reset_index(drop = True), x = df6.loc[df6['isced']==3].reset_index(drop = True)['wealth'], y = 'Numeracy_2', fit_reg=True, ci=None, ax=ax11, label='ISCED = 3')
ax11.set(ylabel='Numeracy_2', xlabel='Wealth')
ax11.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
In [129]:
# Trend line for Absolute Graph Comprehension Score vs wealth reponses sorted by isced and ORDERED by wealth WITHOUT scatter
fig, ax11 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df6.loc[df6['isced']==1].reset_index(drop = True), x = df6.loc[df6['isced']==1].reset_index(drop = True)['wealth'], y = 'GraphLiteracy_3', fit_reg=True, ci=None, ax=ax11, label='ISCED = 1')
sns.regplot (scatter = False, data = df6.loc[df6['isced']==2].reset_index(drop = True), x = df6.loc[df6['isced']==2].reset_index(drop = True)['wealth'], y = 'GraphLiteracy_3', fit_reg=True, ci=None, ax=ax11, label='ISCED = 2')
sns.regplot (scatter = False, data = df6.loc[df6['isced']==3].reset_index(drop = True), x = df6.loc[df6['isced']==3].reset_index(drop = True)['wealth'], y = 'GraphLiteracy_3', fit_reg=True, ci=None, ax=ax11, label='ISCED = 3')
ax11.set(ylabel='GraphLiteracy_3', xlabel='Wealth')
ax11.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
In [130]:
# Trend line for Absolute Bayesian Reasoning Score vs wealth reponses sorted by isced and ORDERED by wealth WITHOUT scatter
fig, ax12 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df6.loc[df6['isced']==1].reset_index(drop = True), x = df6.loc[df6['isced']==1].reset_index(drop = True)['wealth'], y = 'Bayesianreasoning_1', fit_reg=True, ci=None, ax=ax12, label='ISCED = 1')
sns.regplot (scatter = False, data = df6.loc[df6['isced']==2].reset_index(drop = True), x = df6.loc[df6['isced']==2].reset_index(drop = True)['wealth'], y = 'Bayesianreasoning_1', fit_reg=True, ci=None, ax=ax12, label='ISCED = 2')
sns.regplot (scatter = False, data = df6.loc[df6['isced']==3].reset_index(drop = True), x = df6.loc[df6['isced']==3].reset_index(drop = True)['wealth'], y = 'Bayesianreasoning_1', fit_reg=True, ci=None, ax=ax12, label='ISCED = 3')
ax12.set(ylabel='Bayesianreasoning_1', xlabel='Wealth')
ax12.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
In [ ]:
In [ ]:
WEALTH Quartile Number vs SCORES w/ ISCED and AGE based classification¶
In [131]:
# Descriptive stats for the data set, isced = 1
# NA values of wealth are removed
df4.loc[df4['isced']==1].describe()
Out[131]:
| age | age_rec | isced | income | wealth | Certainty_5 | Uncertainty_2 | RiskComprehension_5 | GraphLiteracy_3 | Numeracy_2 | Bayesianreasoning_1 | Certainty_% | Uncertainty_% | RiskComprehension_% | GraphLiteracy_% | Numeracy_% | Bayesianreasoning_% | TotalScore_18 | TotalScore_% | Quartile Number | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| count | 413.000000 | 413.000000 | 413.0 | 413.000000 | 4.130000e+02 | 413.000000 | 413.000000 | 413.000000 | 413.000000 | 413.000000 | 413.000000 | 413.000000 | 413.000000 | 413.000000 | 413.000000 | 413.000000 | 413.000000 | 413.000000 | 413.000000 | 413.000000 |
| mean | 35.285714 | 2.443099 | 1.0 | 2.314770 | 1.020335e+07 | 2.249395 | 0.455206 | 2.205811 | 1.336562 | 1.077482 | 0.196126 | 44.987893 | 22.760291 | 44.116223 | 44.552058 | 53.874092 | 19.612591 | 7.520581 | 41.781006 | 2.544794 |
| std | 9.828602 | 0.582747 | 0.0 | 1.091761 | 3.794182e+07 | 1.293479 | 0.616168 | 1.069781 | 0.963179 | 0.771961 | 0.397546 | 25.869582 | 30.808415 | 21.395627 | 32.105960 | 38.598049 | 39.754648 | 2.523229 | 14.017942 | 1.084334 |
| min | 18.000000 | 2.000000 | 1.0 | 1.000000 | 0.000000e+00 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 2.000000 | 11.111111 | 1.000000 |
| 25% | 30.500000 | 2.000000 | 1.0 | 2.000000 | 3.000000e+05 | 1.000000 | 0.000000 | 1.000000 | 1.000000 | 0.000000 | 0.000000 | 20.000000 | 0.000000 | 20.000000 | 33.333333 | 0.000000 | 0.000000 | 6.000000 | 33.333333 | 2.000000 |
| 50% | 30.500000 | 2.000000 | 1.0 | 2.000000 | 1.200000e+06 | 2.000000 | 0.000000 | 2.000000 | 1.000000 | 1.000000 | 0.000000 | 40.000000 | 0.000000 | 40.000000 | 33.333333 | 50.000000 | 0.000000 | 7.000000 | 38.888889 | 3.000000 |
| 75% | 40.500000 | 3.000000 | 1.0 | 3.000000 | 5.000000e+06 | 3.000000 | 1.000000 | 3.000000 | 2.000000 | 2.000000 | 0.000000 | 60.000000 | 50.000000 | 60.000000 | 66.666667 | 100.000000 | 0.000000 | 9.000000 | 50.000000 | 3.000000 |
| max | 70.500000 | 4.000000 | 1.0 | 5.000000 | 5.000000e+08 | 5.000000 | 2.000000 | 5.000000 | 3.000000 | 2.000000 | 1.000000 | 100.000000 | 100.000000 | 100.000000 | 100.000000 | 100.000000 | 100.000000 | 15.000000 | 83.333333 | 4.000000 |
In [132]:
df4.loc[df4['isced']==2].describe()
Out[132]:
| age | age_rec | isced | income | wealth | Certainty_5 | Uncertainty_2 | RiskComprehension_5 | GraphLiteracy_3 | Numeracy_2 | Bayesianreasoning_1 | Certainty_% | Uncertainty_% | RiskComprehension_% | GraphLiteracy_% | Numeracy_% | Bayesianreasoning_% | TotalScore_18 | TotalScore_% | Quartile Number | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| count | 364.000000 | 364.000000 | 364.0 | 364.000000 | 3.640000e+02 | 364.000000 | 364.000000 | 364.000000 | 364.000000 | 364.000000 | 364.000000 | 364.000000 | 364.000000 | 364.000000 | 364.000000 | 364.000000 | 364.000000 | 364.000000 | 364.000000 | 364.000000 |
| mean | 30.877747 | 2.271978 | 2.0 | 1.851648 | 9.861171e+06 | 2.637363 | 0.447802 | 2.214286 | 1.376374 | 1.090659 | 0.255495 | 52.747253 | 22.390110 | 44.285714 | 45.879121 | 54.532967 | 25.549451 | 8.021978 | 44.566545 | 2.274725 |
| std | 10.056769 | 0.514458 | 0.0 | 1.017734 | 5.225548e+07 | 1.323794 | 0.612110 | 1.019487 | 0.995080 | 0.823231 | 0.436739 | 26.475871 | 30.605488 | 20.389748 | 33.169331 | 41.161531 | 43.673914 | 2.646180 | 14.701002 | 1.042522 |
| min | 18.000000 | 2.000000 | 2.0 | 1.000000 | 0.000000e+00 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 1.000000 | 5.555556 | 1.000000 |
| 25% | 22.000000 | 2.000000 | 2.0 | 1.000000 | 2.000000e+05 | 1.000000 | 0.000000 | 2.000000 | 1.000000 | 0.000000 | 0.000000 | 20.000000 | 0.000000 | 40.000000 | 33.333333 | 0.000000 | 0.000000 | 6.000000 | 33.333333 | 1.000000 |
| 50% | 30.500000 | 2.000000 | 2.0 | 2.000000 | 6.000000e+05 | 3.000000 | 0.000000 | 2.000000 | 1.000000 | 1.000000 | 0.000000 | 60.000000 | 0.000000 | 40.000000 | 33.333333 | 50.000000 | 0.000000 | 8.000000 | 44.444444 | 2.000000 |
| 75% | 34.000000 | 2.000000 | 2.0 | 2.000000 | 3.000000e+06 | 4.000000 | 1.000000 | 3.000000 | 2.000000 | 2.000000 | 1.000000 | 80.000000 | 50.000000 | 60.000000 | 66.666667 | 100.000000 | 100.000000 | 10.000000 | 55.555556 | 3.000000 |
| max | 70.000000 | 4.000000 | 2.0 | 5.000000 | 6.000000e+08 | 5.000000 | 2.000000 | 5.000000 | 3.000000 | 2.000000 | 1.000000 | 100.000000 | 100.000000 | 100.000000 | 100.000000 | 100.000000 | 100.000000 | 15.000000 | 83.333333 | 4.000000 |
In [133]:
df4.loc[df4['isced']==3].describe()
Out[133]:
| age | age_rec | isced | income | wealth | Certainty_5 | Uncertainty_2 | RiskComprehension_5 | GraphLiteracy_3 | Numeracy_2 | Bayesianreasoning_1 | Certainty_% | Uncertainty_% | RiskComprehension_% | GraphLiteracy_% | Numeracy_% | Bayesianreasoning_% | TotalScore_18 | TotalScore_% | Quartile Number | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| count | 62.000000 | 62.000000 | 62.0 | 62.000000 | 6.200000e+01 | 62.000000 | 62.000000 | 62.000000 | 62.000000 | 62.000000 | 62.000000 | 62.000000 | 62.000000 | 62.000000 | 62.000000 | 62.000000 | 62.000000 | 62.000000 | 62.000000 | 62.000000 |
| mean | 26.951613 | 2.225806 | 3.0 | 1.629032 | 3.719399e+06 | 3.145161 | 0.677419 | 2.080645 | 1.322581 | 0.967742 | 0.225806 | 62.903226 | 33.870968 | 41.612903 | 44.086022 | 48.387097 | 22.580645 | 8.419355 | 46.774194 | 1.854839 |
| std | 12.274093 | 0.584481 | 0.0 | 1.119629 | 1.336024e+07 | 1.157255 | 0.672022 | 0.892563 | 0.971296 | 0.829136 | 0.421526 | 23.145094 | 33.601075 | 17.851257 | 32.376538 | 41.456813 | 42.152552 | 2.583354 | 14.351966 | 1.068886 |
| min | 16.000000 | 0.000000 | 3.0 | 1.000000 | 0.000000e+00 | 1.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 20.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 3.000000 | 16.666667 | 1.000000 |
| 25% | 19.000000 | 2.000000 | 3.0 | 1.000000 | 5.000000e+04 | 2.000000 | 0.000000 | 2.000000 | 1.000000 | 0.000000 | 0.000000 | 40.000000 | 0.000000 | 40.000000 | 33.333333 | 0.000000 | 0.000000 | 7.000000 | 38.888889 | 1.000000 |
| 50% | 21.250000 | 2.000000 | 3.0 | 1.000000 | 2.000000e+05 | 4.000000 | 1.000000 | 2.000000 | 1.000000 | 1.000000 | 0.000000 | 80.000000 | 50.000000 | 40.000000 | 33.333333 | 50.000000 | 0.000000 | 9.000000 | 50.000000 | 1.000000 |
| 75% | 30.500000 | 2.000000 | 3.0 | 2.000000 | 1.500000e+06 | 4.000000 | 1.000000 | 3.000000 | 2.000000 | 2.000000 | 0.000000 | 80.000000 | 50.000000 | 60.000000 | 66.666667 | 100.000000 | 0.000000 | 10.000000 | 55.555556 | 3.000000 |
| max | 70.500000 | 4.000000 | 3.0 | 5.000000 | 1.000000e+08 | 5.000000 | 2.000000 | 4.000000 | 3.000000 | 2.000000 | 1.000000 | 100.000000 | 100.000000 | 80.000000 | 100.000000 | 100.000000 | 100.000000 | 12.000000 | 66.666667 | 4.000000 |
In [134]:
# Trend line for Absolute Tota Facet Score vs Quartile Number reponses sorted by isced and ORDERED by Quartile Number WITH scatter
fig, ax7 = plt.subplots(figsize=(6, 6))
sns.regplot (data = df4.loc[df4['isced']==1].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[df4['isced']==1]['TotalScore_18'], fit_reg=True, ci=None, ax=ax7, label='ISCED = 1')
sns.regplot (data = df4.loc[df4['isced']==2].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[df4['isced']==2]['TotalScore_18'], fit_reg=True, ci=None, ax=ax7, label='ISCED = 2')
sns.regplot (data = df4.loc[df4['isced']==3].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[df4['isced']==3]['TotalScore_18'], fit_reg=True, ci=None, ax=ax7, label='ISCED = 3')
ax7.set(ylabel='Total Scores_19', xlabel='WEALTH Quartile Number')
ax7.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
In [135]:
# Trend line for Absolute Tota Facet Score vs Quartile Number reponses sorted by isced and ORDERED by Quartile Number WITHOUT scatter
fig, ax8 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df4.loc[df4['isced']==1].reset_index(drop = True), x = 'Quartile Number', y = 'TotalScore_18', fit_reg=True, ci=None, ax=ax8, label='ISCED = 1')
sns.regplot (scatter = False, data = df4.loc[df4['isced']==2].reset_index(drop = True), x = 'Quartile Number', y = 'TotalScore_18', fit_reg=True, ci=None, ax=ax8, label='ISCED = 2')
sns.regplot (scatter = False, data = df4.loc[df4['isced']==3].reset_index(drop = True), x = 'Quartile Number', y = 'TotalScore_18', fit_reg=True, ci=None, ax=ax8, label='ISCED = 3')
ax8.set(ylabel='Total Scores_19', xlabel='WEALTH Quartile Number')
ax8.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
In [136]:
# Trend line for Absolute Certainty Score vs Quartile Number reponses sorted by isced and ORDERED by Quartile Number WITHOUT scatter
fig, ax9 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df4.loc[df4['isced']==1].reset_index(drop = True), x = 'Quartile Number', y = 'Certainty_5', fit_reg=True, ci=None, ax=ax9, label='ISCED = 1')
sns.regplot (scatter = False, data = df4.loc[df4['isced']==2].reset_index(drop = True), x = 'Quartile Number', y = 'Certainty_5', fit_reg=True, ci=None, ax=ax9, label='ISCED = 2')
sns.regplot (scatter = False, data = df4.loc[df4['isced']==3].reset_index(drop = True), x = 'Quartile Number', y = 'Certainty_5', fit_reg=True, ci=None, ax=ax9, label='ISCED = 3')
ax9.set(ylabel='Certainty_5', xlabel='WEALTH Quartile Number')
ax9.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
In [137]:
# Trend line for Absolute Risk Comprehension Score vs Quartile Number reponses sorted by isced and ORDERED by Quartile Number WITHOUT scatter
fig, ax10 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df4.loc[df4['isced']==1].reset_index(drop = True), x = 'Quartile Number', y = 'RiskComprehension_5', fit_reg=True, ci=None, ax=ax10, label='ISCED = 1')
sns.regplot (scatter = False, data = df4.loc[df4['isced']==2].reset_index(drop = True), x = 'Quartile Number', y = 'RiskComprehension_5', fit_reg=True, ci=None, ax=ax10, label='ISCED = 2')
sns.regplot (scatter = False, data = df4.loc[df4['isced']==3].reset_index(drop = True), x = 'Quartile Number', y = 'RiskComprehension_5', fit_reg=True, ci=None, ax=ax10, label='ISCED = 3')
ax10.set(ylabel='RiskComprehension_5', xlabel='WEALTH Quartile Number')
ax10.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
In [138]:
# Trend line for Absolute Number Comprehension Score vs Quartile Number reponses sorted by isced and ORDERED by Quartile Number WITHOUT scatter
fig, ax11 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df4.loc[df4['isced']==1].reset_index(drop = True), x = 'Quartile Number', y = 'Numeracy_2', fit_reg=True, ci=None, ax=ax11, label='ISCED = 1')
sns.regplot (scatter = False, data = df4.loc[df4['isced']==2].reset_index(drop = True), x = 'Quartile Number', y = 'Numeracy_2', fit_reg=True, ci=None, ax=ax11, label='ISCED = 2')
sns.regplot (scatter = False, data = df4.loc[df4['isced']==3].reset_index(drop = True), x = 'Quartile Number', y = 'Numeracy_2', fit_reg=True, ci=None, ax=ax11, label='ISCED = 3')
ax11.set(ylabel='Numeracy_2', xlabel='WEALTH Quartile Number')
ax11.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
In [139]:
# Trend line for Absolute Graph Comprehension Score vs Quartile Number reponses sorted by isced and ORDERED by Quartile Number WITHOUT scatter
fig, ax11 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df4.loc[df4['isced']==1].reset_index(drop = True), x = 'Quartile Number', y = 'GraphLiteracy_3', fit_reg=True, ci=None, ax=ax11, label='ISCED = 1')
sns.regplot (scatter = False, data = df4.loc[df4['isced']==2].reset_index(drop = True), x = 'Quartile Number', y = 'GraphLiteracy_3', fit_reg=True, ci=None, ax=ax11, label='ISCED = 2')
sns.regplot (scatter = False, data = df4.loc[df4['isced']==3].reset_index(drop = True), x = 'Quartile Number', y = 'GraphLiteracy_3', fit_reg=True, ci=None, ax=ax11, label='ISCED = 3')
ax11.set(ylabel='GraphLiteracy_3', xlabel='WEALTH Quartile Number')
ax11.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
In [140]:
# Trend line for Absolute Bayesian Reasoning Score vs Quartile Number reponses sorted by isced and ORDERED by Quartile Number WITHOUT scatter
fig, ax12 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df4.loc[df4['isced']==1].reset_index(drop = True), x = 'Quartile Number', y = 'Bayesianreasoning_1', fit_reg=True, ci=None, ax=ax12, label='ISCED = 1')
sns.regplot (scatter = False, data = df4.loc[df4['isced']==2].reset_index(drop = True), x = 'Quartile Number', y = 'Bayesianreasoning_1', fit_reg=True, ci=None, ax=ax12, label='ISCED = 2')
sns.regplot (scatter = False, data = df4.loc[df4['isced']==3].reset_index(drop = True), x = 'Quartile Number', y = 'Bayesianreasoning_1', fit_reg=True, ci=None, ax=ax12, label='ISCED = 3')
ax12.set(ylabel='Bayesianreasoning_1', xlabel='WEALTH Quartile Number')
ax12.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
In [ ]:
In [ ]:
In [ ]:
In [141]:
df4
Out[141]:
| ResponseId | age | age_rec | isced | income | wealth | Certainty_5 | Uncertainty_2 | RiskComprehension_5 | GraphLiteracy_3 | Numeracy_2 | Bayesianreasoning_1 | Certainty_% | Uncertainty_% | RiskComprehension_% | GraphLiteracy_% | Numeracy_% | Bayesianreasoning_% | TotalScore_18 | TotalScore_% | Quartile Number | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | R_4MJAzsNYYA69Y8p | 27.0 | 2 | 3 | 1 | 0.0 | 4 | 1 | 3 | 1 | 0 | 1 | 80.0 | 50.0 | 60.0 | 33.333333 | 0.0 | 100.0 | 10 | 55.555556 | 1 |
| 1 | R_41bfnamM0zpH94i | 30.0 | 2 | 1 | 2 | 0.0 | 4 | 0 | 2 | 1 | 1 | 1 | 80.0 | 0.0 | 40.0 | 33.333333 | 50.0 | 100.0 | 9 | 50.000000 | 1 |
| 2 | e7ty2tbwa1hcmte7ty683aw64pla7689 | 30.5 | 2 | 2 | 1 | 0.0 | 1 | 0 | 2 | 1 | 1 | 0 | 20.0 | 0.0 | 40.0 | 33.333333 | 50.0 | 0.0 | 5 | 27.777778 | 1 |
| 3 | R_4lnmGavSf6rw1eE | 31.0 | 2 | 1 | 1 | 0.0 | 1 | 0 | 2 | 1 | 2 | 0 | 20.0 | 0.0 | 40.0 | 33.333333 | 100.0 | 0.0 | 6 | 33.333333 | 1 |
| 4 | R_4DPGUOAP86yO30R | 19.0 | 2 | 3 | 1 | 0.0 | 4 | 2 | 1 | 2 | 1 | 1 | 80.0 | 100.0 | 20.0 | 66.666667 | 50.0 | 100.0 | 11 | 61.111111 | 1 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 834 | lmoqk1qcf44jqqudwkplmoqk18cao0fs | 40.5 | 3 | 1 | 2 | 400000000.0 | 2 | 0 | 1 | 1 | 1 | 0 | 40.0 | 0.0 | 20.0 | 33.333333 | 50.0 | 0.0 | 5 | 27.777778 | 4 |
| 835 | wn9mk6m1k8o10l1twn9mk6b4z7l7yvhc | 50.5 | 3 | 1 | 3 | 500000000.0 | 2 | 0 | 3 | 3 | 2 | 0 | 40.0 | 0.0 | 60.0 | 100.000000 | 100.0 | 0.0 | 10 | 55.555556 | 4 |
| 836 | oczyh23wpxpk4o0teoczy5zzzng3i6kk | 30.5 | 2 | 2 | 5 | 500000000.0 | 1 | 0 | 3 | 3 | 2 | 0 | 20.0 | 0.0 | 60.0 | 100.000000 | 100.0 | 0.0 | 9 | 50.000000 | 4 |
| 837 | 35zux4sc18rplyz3dc85z35zux4sdfm4 | 21.5 | 2 | 2 | 4 | 500000000.0 | 2 | 0 | 1 | 0 | 1 | 0 | 40.0 | 0.0 | 20.0 | 0.000000 | 50.0 | 0.0 | 4 | 22.222222 | 4 |
| 838 | zcj7ldokhyo6217f9sriwizcj7ldodwt | 40.5 | 3 | 2 | 3 | 600000000.0 | 3 | 1 | 2 | 1 | 2 | 1 | 60.0 | 50.0 | 40.0 | 33.333333 | 100.0 | 100.0 | 10 | 55.555556 | 4 |
839 rows × 21 columns
In [142]:
# Since we already have a classification for Age groups in the form of age_rec, we will use that.
# We will also use median of age to see if it yields any relevant results, as instructed.
# AXES to be used = Age or age groups, ISCED, Income
# Age groups = [2,3,4]
# Age group 2 = 18 to 35 y/o
# Age group 3 = 36 to 59 y/o
# Age group 4 = 60 to 75 y/o (75 y/o, i.e, within the scope of the data we have, it can mean 60 and above also)
In [143]:
df4.loc[(df4['age_rec']==2)].describe()
Out[143]:
| age | age_rec | isced | income | wealth | Certainty_5 | Uncertainty_2 | RiskComprehension_5 | GraphLiteracy_3 | Numeracy_2 | Bayesianreasoning_1 | Certainty_% | Uncertainty_% | RiskComprehension_% | GraphLiteracy_% | Numeracy_% | Bayesianreasoning_% | TotalScore_18 | TotalScore_% | Quartile Number | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| count | 573.000000 | 573.0 | 573.000000 | 573.000000 | 5.730000e+02 | 573.000000 | 573.000000 | 573.000000 | 573.000000 | 573.000000 | 573.000000 | 573.000000 | 573.000000 | 573.000000 | 573.000000 | 573.000000 | 573.000000 | 573.000000 | 573.000000 | 573.000000 |
| mean | 26.943281 | 2.0 | 1.647469 | 1.959860 | 7.616613e+06 | 2.554974 | 0.476440 | 2.158813 | 1.371728 | 1.085515 | 0.235602 | 51.099476 | 23.821990 | 43.176265 | 45.724258 | 54.275742 | 23.560209 | 7.883072 | 43.794842 | 2.249564 |
| std | 4.633303 | 0.0 | 0.626887 | 1.047872 | 3.540355e+07 | 1.350679 | 0.638141 | 1.016084 | 0.973263 | 0.805151 | 0.424745 | 27.013572 | 31.907039 | 20.321679 | 32.442106 | 40.257572 | 42.474533 | 2.596786 | 14.426588 | 1.035483 |
| min | 18.000000 | 2.0 | 1.000000 | 1.000000 | 0.000000e+00 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 1.000000 | 5.555556 | 1.000000 |
| 25% | 22.000000 | 2.0 | 1.000000 | 1.000000 | 2.000000e+05 | 1.000000 | 0.000000 | 1.000000 | 1.000000 | 0.000000 | 0.000000 | 20.000000 | 0.000000 | 20.000000 | 33.333333 | 0.000000 | 0.000000 | 6.000000 | 33.333333 | 1.000000 |
| 50% | 30.000000 | 2.0 | 2.000000 | 2.000000 | 6.500000e+05 | 3.000000 | 0.000000 | 2.000000 | 1.000000 | 1.000000 | 0.000000 | 60.000000 | 0.000000 | 40.000000 | 33.333333 | 50.000000 | 0.000000 | 8.000000 | 44.444444 | 2.000000 |
| 75% | 30.500000 | 2.0 | 2.000000 | 2.000000 | 3.000000e+06 | 4.000000 | 1.000000 | 3.000000 | 2.000000 | 2.000000 | 0.000000 | 80.000000 | 50.000000 | 60.000000 | 66.666667 | 100.000000 | 0.000000 | 10.000000 | 55.555556 | 3.000000 |
| max | 35.000000 | 2.0 | 3.000000 | 5.000000 | 5.000000e+08 | 5.000000 | 2.000000 | 5.000000 | 3.000000 | 2.000000 | 1.000000 | 100.000000 | 100.000000 | 100.000000 | 100.000000 | 100.000000 | 100.000000 | 15.000000 | 83.333333 | 4.000000 |
In [144]:
df4.loc[(df4['age_rec']==3)].describe()
Out[144]:
| age | age_rec | isced | income | wealth | Certainty_5 | Uncertainty_2 | RiskComprehension_5 | GraphLiteracy_3 | Numeracy_2 | Bayesianreasoning_1 | Certainty_% | Uncertainty_% | RiskComprehension_% | GraphLiteracy_% | Numeracy_% | Bayesianreasoning_% | TotalScore_18 | TotalScore_% | Quartile Number | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| count | 232.000000 | 232.0 | 232.000000 | 232.000000 | 2.320000e+02 | 232.000000 | 232.000000 | 232.000000 | 232.000000 | 232.000000 | 232.000000 | 232.000000 | 232.000000 | 232.000000 | 232.000000 | 232.00000 | 232.000000 | 232.000000 | 232.000000 | 232.000000 |
| mean | 42.892241 | 3.0 | 1.426724 | 2.306034 | 1.445481e+07 | 2.314655 | 0.448276 | 2.271552 | 1.284483 | 1.047414 | 0.198276 | 46.293103 | 22.413793 | 45.431034 | 42.816092 | 52.37069 | 19.827586 | 7.564655 | 42.025862 | 2.581897 |
| std | 4.753812 | 0.0 | 0.591258 | 1.138221 | 6.124404e+07 | 1.282635 | 0.578771 | 1.048380 | 0.987419 | 0.790853 | 0.399563 | 25.652698 | 28.938528 | 20.967600 | 32.913966 | 39.54263 | 39.956313 | 2.591219 | 14.395662 | 1.132832 |
| min | 36.000000 | 3.0 | 1.000000 | 1.000000 | 3.000000e+00 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.00000 | 0.000000 | 2.000000 | 11.111111 | 1.000000 |
| 25% | 40.500000 | 3.0 | 1.000000 | 1.750000 | 3.000000e+05 | 1.000000 | 0.000000 | 2.000000 | 0.000000 | 0.000000 | 0.000000 | 20.000000 | 0.000000 | 40.000000 | 0.000000 | 0.00000 | 0.000000 | 6.000000 | 33.333333 | 2.000000 |
| 50% | 40.500000 | 3.0 | 1.000000 | 2.000000 | 1.750000e+06 | 2.000000 | 0.000000 | 2.000000 | 1.000000 | 1.000000 | 0.000000 | 40.000000 | 0.000000 | 40.000000 | 33.333333 | 50.00000 | 0.000000 | 8.000000 | 44.444444 | 3.000000 |
| 75% | 46.500000 | 3.0 | 2.000000 | 3.000000 | 7.500000e+06 | 4.000000 | 1.000000 | 3.000000 | 2.000000 | 2.000000 | 0.000000 | 80.000000 | 50.000000 | 60.000000 | 66.666667 | 100.00000 | 0.000000 | 9.000000 | 50.000000 | 4.000000 |
| max | 54.000000 | 3.0 | 3.000000 | 5.000000 | 6.000000e+08 | 5.000000 | 2.000000 | 5.000000 | 3.000000 | 2.000000 | 1.000000 | 100.000000 | 100.000000 | 100.000000 | 100.000000 | 100.00000 | 100.000000 | 14.000000 | 77.777778 | 4.000000 |
In [145]:
df4.loc[(df4['age_rec']==4)].describe()
Out[145]:
| age | age_rec | isced | income | wealth | Certainty_5 | Uncertainty_2 | RiskComprehension_5 | GraphLiteracy_3 | Numeracy_2 | Bayesianreasoning_1 | Certainty_% | Uncertainty_% | RiskComprehension_% | GraphLiteracy_% | Numeracy_% | Bayesianreasoning_% | TotalScore_18 | TotalScore_% | Quartile Number | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| count | 33.000000 | 33.0 | 33.000000 | 33.000000 | 3.300000e+01 | 33.000000 | 33.000000 | 33.000000 | 33.000000 | 33.000000 | 33.000000 | 33.000000 | 33.000000 | 33.000000 | 33.000000 | 33.000000 | 33.000000 | 33.000000 | 33.000000 | 33.000000 |
| mean | 62.969697 | 4.0 | 1.484848 | 2.181818 | 9.582270e+06 | 2.393939 | 0.454545 | 2.393939 | 1.545455 | 1.090909 | 0.212121 | 47.878788 | 22.727273 | 47.878788 | 51.515152 | 54.545455 | 21.212121 | 8.090909 | 44.949495 | 3.181818 |
| std | 4.390934 | 0.0 | 0.618527 | 1.236288 | 1.406214e+07 | 0.966288 | 0.616994 | 1.248484 | 0.938446 | 0.765001 | 0.415149 | 19.325756 | 30.849709 | 24.969679 | 31.281550 | 38.250074 | 41.514875 | 2.602446 | 14.458036 | 0.950478 |
| min | 57.000000 | 4.0 | 1.000000 | 1.000000 | 1.000000e+05 | 1.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 20.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 3.000000 | 16.666667 | 1.000000 |
| 25% | 60.500000 | 4.0 | 1.000000 | 1.000000 | 1.250000e+06 | 2.000000 | 0.000000 | 1.000000 | 1.000000 | 1.000000 | 0.000000 | 40.000000 | 0.000000 | 20.000000 | 33.333333 | 50.000000 | 0.000000 | 6.000000 | 33.333333 | 3.000000 |
| 50% | 60.500000 | 4.0 | 1.000000 | 2.000000 | 5.000000e+06 | 2.000000 | 0.000000 | 2.000000 | 2.000000 | 1.000000 | 0.000000 | 40.000000 | 0.000000 | 40.000000 | 66.666667 | 50.000000 | 0.000000 | 8.000000 | 44.444444 | 3.000000 |
| 75% | 65.000000 | 4.0 | 2.000000 | 2.000000 | 1.000000e+07 | 3.000000 | 1.000000 | 3.000000 | 2.000000 | 2.000000 | 0.000000 | 60.000000 | 50.000000 | 60.000000 | 66.666667 | 100.000000 | 0.000000 | 10.000000 | 55.555556 | 4.000000 |
| max | 70.500000 | 4.0 | 3.000000 | 5.000000 | 5.250000e+07 | 4.000000 | 2.000000 | 5.000000 | 3.000000 | 2.000000 | 1.000000 | 80.000000 | 100.000000 | 100.000000 | 100.000000 | 100.000000 | 100.000000 | 13.000000 | 72.222222 | 4.000000 |
In [ ]:
In [146]:
fig, ax1 = plt.subplots(figsize=(6, 6))
sns.regplot (data = df4.loc[(df4['age_rec']==2) & (df4['isced']==1)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==2) & (df4['isced']==1)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (data = df4.loc[(df4['age_rec']==2) & (df4['isced']==2)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==2) & (df4['isced']==2)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (data = df4.loc[(df4['age_rec']==2) & (df4['isced']==3)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==2) & (df4['isced']==3)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')
ax1.set(ylabel='Total Scores_14', xlabel='WEALTH Quartile Number for age 18 to 35')
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
fig, ax2 = plt.subplots(figsize=(6, 6))
sns.regplot (data = df4.loc[(df4['age_rec']==3) & (df4['isced']==1)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==3) & (df4['isced']==1)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (data = df4.loc[(df4['age_rec']==3) & (df4['isced']==2)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==3) & (df4['isced']==2)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (data = df4.loc[(df4['age_rec']==3) & (df4['isced']==3)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==3) & (df4['isced']==3)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')
ax2.set(ylabel='Total Scores_14', xlabel='WEALTH Quartile Number for age 36 to 55')
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
fig, ax3 = plt.subplots(figsize=(6, 6))
sns.regplot (data = df4.loc[(df4['age_rec']==4) & (df4['isced']==1)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==4) & (df4['isced']==1)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 1')
sns.regplot (data = df4.loc[(df4['age_rec']==4) & (df4['isced']==2)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==4) & (df4['isced']==2)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 2')
sns.regplot (data = df4.loc[(df4['age_rec']==4) & (df4['isced']==3)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==4) & (df4['isced']==3)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 3')
ax3.set(ylabel='Total Scores_14', xlabel='WEALTH Quartile Number for age 56 and above')
ax3.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
In [147]:
fig, ax1 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==2) & (df4['isced']==1)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==2) & (df4['isced']==1)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==2) & (df4['isced']==2)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==2) & (df4['isced']==2)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==2) & (df4['isced']==3)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==2) & (df4['isced']==3)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')
ax1.errorbar(x = df4.loc[ df4['age_rec']==2 ]["Quartile Number"].unique(), y = df4.loc[ df4['age_rec']==2 ].groupby(['Quartile Number']).mean(numeric_only=True)['TotalScore_18'], yerr = df4.loc[ (df4['age_rec']==2) ].groupby(['Quartile Number'])['TotalScore_18'].sem(), fmt='o', color = lighten_color('gray',0.5))
ax1.set(ylabel='Total Scores_14', xlabel='WEALTH Quartile Number for age 18 to 35', yticks = np.arange(5, 16 , 1))
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
fig, ax2 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==3) & (df4['isced']==1)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==3) & (df4['isced']==1)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==3) & (df4['isced']==2)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==3) & (df4['isced']==2)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==3) & (df4['isced']==3)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==3) & (df4['isced']==3)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')
ax2.set(ylabel='Total Scores_14', xlabel='WEALTH Quartile Number for age 36 to 55', yticks = np.arange(5, 16 , 1))
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax2.errorbar(x = df4.loc[ df4['age_rec']==3 ]["Quartile Number"].unique(), y = df4.loc[ df4['age_rec']==3 ].groupby(['Quartile Number']).mean(numeric_only=True)['TotalScore_18'], yerr = df4.loc[ (df4['age_rec']==3) ].groupby(['Quartile Number'])['TotalScore_18'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()
fig, ax3 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==4) & (df4['isced']==1)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==4) & (df4['isced']==1)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 1')
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==4) & (df4['isced']==2)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==4) & (df4['isced']==2)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 2')
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==4) & (df4['isced']==3)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==4) & (df4['isced']==3)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 3')
ax3.set(ylabel='Total Scores_14', xlabel='WEALTH Quartile Number for age 56 and above', yticks = np.arange(5, 16 , 1))
ax3.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax3.errorbar(x = df4.loc[ df4['age_rec']== 4 ]['Quartile Number'].unique(), y = df4.loc[ df4['age_rec']==4 ].groupby(['Quartile Number']).mean(numeric_only=True)['TotalScore_18'], yerr = df4.loc[ (df4['age_rec']==4) ].groupby(['Quartile Number'])['TotalScore_18'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()
In [148]:
fig, ax1 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==2) & (df4['isced']==1)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==2) & (df4['isced']==1)]['Certainty_5'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==2) & (df4['isced']==2)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==2) & (df4['isced']==2)]['Certainty_5'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==2) & (df4['isced']==3)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==2) & (df4['isced']==3)]['Certainty_5'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')
ax1.set(ylabel='Certainty_5', xlabel='WEALTH Quartile Number for age 18 to 35', yticks = np.arange(0, 6 , 1))
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax1.errorbar(x = df4.loc[ df4['age_rec']==2 ]["Quartile Number"].unique(), y = df4.loc[ df4['age_rec']==2 ].groupby(['Quartile Number'])['Certainty_5'].mean(), yerr = df4.loc[ (df4['age_rec']==2) ].groupby(['Quartile Number'])['Certainty_5'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()
fig, ax2 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==3) & (df4['isced']==1)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==3) & (df4['isced']==1)]['Certainty_5'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==3) & (df4['isced']==2)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==3) & (df4['isced']==2)]['Certainty_5'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==3) & (df4['isced']==3)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==3) & (df4['isced']==3)]['Certainty_5'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')
ax2.set(ylabel='Certainty_5', xlabel='WEALTH Quartile Number for age 36 to 55', yticks = np.arange(0, 6 , 1))
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax2.errorbar(x = df4.loc[ df4['age_rec']==3 ]["Quartile Number"].unique(), y = df4.loc[ df4['age_rec']==3 ].groupby(['Quartile Number'])['Certainty_5'].mean(), yerr = df4.loc[ (df4['age_rec']==3) ].groupby(['Quartile Number'])['Certainty_5'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()
fig, ax3 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==4) & (df4['isced']==1)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==4) & (df4['isced']==1)]['Certainty_5'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 1')
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==4) & (df4['isced']==2)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==4) & (df4['isced']==2)]['Certainty_5'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 2')
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==4) & (df4['isced']==3)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==4) & (df4['isced']==3)]['Certainty_5'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 3')
ax3.set(ylabel='Certainty_5', xlabel='WEALTH Quartile Number for age 56 and above', yticks = np.arange(0, 6 , 1))
ax3.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax3.errorbar(x = df4.loc[ df4['age_rec']== 4 ]['Quartile Number'].unique(), y = df4.loc[ df4['age_rec']==4 ].groupby(['Quartile Number'])['Certainty_5'].mean(), yerr = df4.loc[ (df4['age_rec']==4) ].groupby(['Quartile Number'])['Certainty_5'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()
In [149]:
fig, ax1 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==2) & (df4['isced']==1)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==2) & (df4['isced']==1)]['RiskComprehension_5'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==2) & (df4['isced']==2)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==2) & (df4['isced']==2)]['RiskComprehension_5'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==2) & (df4['isced']==3)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==2) & (df4['isced']==3)]['RiskComprehension_5'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')
ax1.set(ylabel='RiskComprehension_5', xlabel='WEALTH Quartile Number for age 18 to 35', yticks = np.arange(0, 3 , 1))
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax1.errorbar(x = df4.loc[ df4['age_rec']==2 ]["Quartile Number"].unique(), y = df4.loc[ df4['age_rec']==2 ].groupby(['Quartile Number'])['RiskComprehension_5'].mean(), yerr = df4.loc[ (df4['age_rec']==2) ].groupby(['Quartile Number'])['RiskComprehension_5'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()
fig, ax2 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==3) & (df4['isced']==1)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==3) & (df4['isced']==1)]['RiskComprehension_5'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==3) & (df4['isced']==2)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==3) & (df4['isced']==2)]['RiskComprehension_5'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==3) & (df4['isced']==3)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==3) & (df4['isced']==3)]['RiskComprehension_5'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')
ax2.set(ylabel='RiskComprehension_5', xlabel='WEALTH Quartile Number for age 36 to 55', yticks = np.arange(0, 3 , 1))
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax2.errorbar(x = df4.loc[ df4['age_rec']==3 ]["Quartile Number"].unique(), y = df4.loc[ df4['age_rec']==3 ].groupby(['Quartile Number'])['RiskComprehension_5'].mean(), yerr = df4.loc[ (df4['age_rec']==3) ].groupby(['Quartile Number'])['RiskComprehension_5'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()
fig, ax3 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==4) & (df4['isced']==1)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==4) & (df4['isced']==1)]['RiskComprehension_5'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 1')
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==4) & (df4['isced']==2)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==4) & (df4['isced']==2)]['RiskComprehension_5'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 2')
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==4) & (df4['isced']==3)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==4) & (df4['isced']==3)]['RiskComprehension_5'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 3')
ax3.set(ylabel='RiskComprehension_5', xlabel='WEALTH Quartile Number for age 56 and above', yticks = np.arange(0, 3 , 1))
ax3.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax3.errorbar(x = df4.loc[ df4['age_rec']== 4 ]['Quartile Number'].unique(), y = df4.loc[ df4['age_rec']==4 ].groupby(['Quartile Number'])['RiskComprehension_5'].mean(), yerr = df4.loc[ (df4['age_rec']==4) ].groupby(['Quartile Number'])['RiskComprehension_5'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()
In [150]:
fig, ax1 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==2) & (df4['isced']==1)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==2) & (df4['isced']==1)]['Numeracy_2'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==2) & (df4['isced']==2)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==2) & (df4['isced']==2)]['Numeracy_2'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==2) & (df4['isced']==3)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==2) & (df4['isced']==3)]['Numeracy_2'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')
ax1.set(ylabel='Numeracy_2', xlabel='WEALTH Quartile Number for age 18 to 35', yticks = np.arange(0, 6 , 1))
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax1.errorbar(x = df4.loc[ df4['age_rec']==2 ]["Quartile Number"].unique(), y = df4.loc[ df4['age_rec']==2 ].groupby(['Quartile Number'])['Numeracy_2'].mean(), yerr = df4.loc[ (df4['age_rec']==2) ].groupby(['Quartile Number'])['Numeracy_2'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()
fig, ax2 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==3) & (df4['isced']==1)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==3) & (df4['isced']==1)]['Numeracy_2'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==3) & (df4['isced']==2)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==3) & (df4['isced']==2)]['Numeracy_2'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==3) & (df4['isced']==3)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==3) & (df4['isced']==3)]['Numeracy_2'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')
ax2.set(ylabel='Numeracy_2', xlabel='WEALTH Quartile Number for age 36 to 55', yticks = np.arange(0, 6 , 1))
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax2.errorbar(x = df4.loc[ df4['age_rec']==3 ]["Quartile Number"].unique(), y = df4.loc[ df4['age_rec']==3 ].groupby(['Quartile Number'])['Numeracy_2'].mean(), yerr = df4.loc[ (df4['age_rec']==3) ].groupby(['Quartile Number'])['Numeracy_2'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()
fig, ax3 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==4) & (df4['isced']==1)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==4) & (df4['isced']==1)]['Numeracy_2'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 1')
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==4) & (df4['isced']==2)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==4) & (df4['isced']==2)]['Numeracy_2'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 2')
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==4) & (df4['isced']==3)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==4) & (df4['isced']==3)]['Numeracy_2'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 3')
ax3.set(ylabel='Numeracy_2', xlabel='WEALTH Quartile Number for age 56 and above', yticks = np.arange(0, 6 , 1))
ax3.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax3.errorbar(x = df4.loc[ df4['age_rec']== 4 ]['Quartile Number'].unique(), y = df4.loc[ df4['age_rec']==4 ].groupby(['Quartile Number'])['Numeracy_2'].mean(), yerr = df4.loc[ (df4['age_rec']==4) ].groupby(['Quartile Number'])['Numeracy_2'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()
In [151]:
fig, ax1 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==2) & (df4['isced']==1)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==2) & (df4['isced']==1)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==2) & (df4['isced']==2)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==2) & (df4['isced']==2)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==2) & (df4['isced']==3)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==2) & (df4['isced']==3)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')
ax1.set(ylabel='GraphLiteracy_3', xlabel='WEALTH Quartile Number for age 18 to 35', yticks = np.arange(0, 4 , 1))
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax1.errorbar(x = df4.loc[ df4['age_rec']==2 ]["Quartile Number"].unique(), y = df4.loc[ df4['age_rec']==2 ].groupby(['Quartile Number'])['GraphLiteracy_3'].mean(), yerr = df4.loc[ (df4['age_rec']==2) ].groupby(['Quartile Number'])['GraphLiteracy_3'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()
fig, ax2 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==3) & (df4['isced']==1)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==3) & (df4['isced']==1)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==3) & (df4['isced']==2)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==3) & (df4['isced']==2)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==3) & (df4['isced']==3)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==3) & (df4['isced']==3)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')
ax2.set(ylabel='GraphLiteracy_3', xlabel='WEALTH Quartile Number for age 36 to 55', yticks = np.arange(0, 4 , 1))
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax2.errorbar(x = df4.loc[ df4['age_rec']==3 ]["Quartile Number"].unique(), y = df4.loc[ df4['age_rec']==3 ].groupby(['Quartile Number'])['GraphLiteracy_3'].mean(), yerr = df4.loc[ (df4['age_rec']==3) ].groupby(['Quartile Number'])['GraphLiteracy_3'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()
fig, ax3 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==4) & (df4['isced']==1)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==4) & (df4['isced']==1)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 1')
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==4) & (df4['isced']==2)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==4) & (df4['isced']==2)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 2')
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==4) & (df4['isced']==3)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==4) & (df4['isced']==3)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 3')
ax3.set(ylabel='GraphLiteracy_3', xlabel='WEALTH Quartile Number for age 56 and above', yticks = np.arange(0, 4 , 1))
ax3.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax3.errorbar(x = df4.loc[ df4['age_rec']== 4 ]['Quartile Number'].unique(), y = df4.loc[ df4['age_rec']==4 ].groupby(['Quartile Number'])['GraphLiteracy_3'].mean(), yerr = df4.loc[ (df4['age_rec']==4) ].groupby(['Quartile Number'])['GraphLiteracy_3'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()
In [152]:
fig, ax1 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==2) & (df4['isced']==1)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==2) & (df4['isced']==1)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==2) & (df4['isced']==2)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==2) & (df4['isced']==2)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==2) & (df4['isced']==3)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==2) & (df4['isced']==3)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')
ax1.set(ylabel='Bayesianreasoning_1', xlabel='WEALTH Quartile Number for age 18 to 35', yticks = np.arange(0, 5 , 1))
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax1.errorbar(x = df4.loc[ df4['age_rec']==2 ]["Quartile Number"].unique(), y = df4.loc[ df4['age_rec']==2 ].groupby(['Quartile Number'])['Bayesianreasoning_1'].mean(), yerr = df4.loc[ (df4['age_rec']==2) ].groupby(['Quartile Number'])['Bayesianreasoning_1'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()
fig, ax2 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==3) & (df4['isced']==1)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==3) & (df4['isced']==1)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==3) & (df4['isced']==2)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==3) & (df4['isced']==2)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==3) & (df4['isced']==3)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==3) & (df4['isced']==3)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')
ax2.set(ylabel='Bayesianreasoning_1', xlabel='WEALTH Quartile Number for age 36 to ', yticks = np.arange(0, 5 , 1))
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax2.errorbar(x = df4.loc[ df4['age_rec']==3 ]["Quartile Number"].unique(), y = df4.loc[ df4['age_rec']==3 ].groupby(['Quartile Number'])['Bayesianreasoning_1'].mean(), yerr = df4.loc[ (df4['age_rec']==3) ].groupby(['Quartile Number'])['Bayesianreasoning_1'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()
fig, ax3 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==4) & (df4['isced']==1)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==4) & (df4['isced']==1)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 1')
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==4) & (df4['isced']==2)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==4) & (df4['isced']==2)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 2')
sns.regplot (scatter = False, data = df4.loc[(df4['age_rec']==4) & (df4['isced']==3)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age_rec']==4) & (df4['isced']==3)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 3')
ax3.set(ylabel='Bayesianreasoning_1', xlabel='WEALTH Quartile Number for age 56 and above', yticks = np.arange(0, 5 , 1))
ax3.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax3.errorbar(x = df4.loc[ df4['age_rec']== 4 ]['Quartile Number'].unique(), y = df4.loc[ df4['age_rec']==4 ].groupby(['Quartile Number'])['Bayesianreasoning_1'].mean(), yerr = df4.loc[ (df4['age_rec']==4) ].groupby(['Quartile Number'])['Bayesianreasoning_1'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()
In [153]:
# Age mean method
# Age_mean
In [154]:
age_m = df2["age"].median()
age_m
Out[154]:
30.5
In [ ]:
In [155]:
df4["Quartile Number"].value_counts()
Out[155]:
Quartile Number 2 252 1 221 3 195 4 171 Name: count, dtype: int64
In [ ]:
In [ ]:
In [156]:
df4.loc[(df4['age'] < age_m)].describe()
Out[156]:
| age | age_rec | isced | income | wealth | Certainty_5 | Uncertainty_2 | RiskComprehension_5 | GraphLiteracy_3 | Numeracy_2 | Bayesianreasoning_1 | Certainty_% | Uncertainty_% | RiskComprehension_% | GraphLiteracy_% | Numeracy_% | Bayesianreasoning_% | TotalScore_18 | TotalScore_% | Quartile Number | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| count | 298.000000 | 298.000000 | 298.000000 | 298.000000 | 2.980000e+02 | 298.000000 | 298.000000 | 298.000000 | 298.000000 | 298.000000 | 298.000000 | 298.000000 | 298.000000 | 298.000000 | 298.000000 | 298.000000 | 298.000000 | 298.000000 | 298.000000 | 298.000000 |
| mean | 23.206376 | 1.993289 | 1.869128 | 1.788591 | 7.382464e+06 | 3.036913 | 0.553691 | 2.171141 | 1.459732 | 1.151007 | 0.271812 | 60.738255 | 27.684564 | 43.422819 | 48.657718 | 57.550336 | 27.181208 | 8.644295 | 48.023863 | 2.073826 |
| std | 3.435092 | 0.115857 | 0.635366 | 1.050383 | 3.704148e+07 | 1.248021 | 0.665759 | 0.939718 | 0.984761 | 0.804459 | 0.445642 | 24.960412 | 33.287967 | 18.794362 | 32.825354 | 40.222937 | 44.564190 | 2.504068 | 13.911487 | 1.032104 |
| min | 16.000000 | 0.000000 | 1.000000 | 1.000000 | 0.000000e+00 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 2.000000 | 11.111111 | 1.000000 |
| 25% | 21.000000 | 2.000000 | 1.000000 | 1.000000 | 1.000000e+05 | 2.000000 | 0.000000 | 2.000000 | 1.000000 | 0.000000 | 0.000000 | 40.000000 | 0.000000 | 40.000000 | 33.333333 | 0.000000 | 0.000000 | 7.000000 | 38.888889 | 1.000000 |
| 50% | 22.000000 | 2.000000 | 2.000000 | 1.000000 | 5.000000e+05 | 4.000000 | 0.000000 | 2.000000 | 1.000000 | 1.000000 | 0.000000 | 80.000000 | 0.000000 | 40.000000 | 33.333333 | 50.000000 | 0.000000 | 9.000000 | 50.000000 | 2.000000 |
| 75% | 26.000000 | 2.000000 | 2.000000 | 2.000000 | 2.000000e+06 | 4.000000 | 1.000000 | 3.000000 | 2.000000 | 2.000000 | 1.000000 | 80.000000 | 50.000000 | 60.000000 | 66.666667 | 100.000000 | 100.000000 | 10.000000 | 55.555556 | 3.000000 |
| max | 30.000000 | 2.000000 | 3.000000 | 5.000000 | 5.000000e+08 | 4.000000 | 2.000000 | 5.000000 | 3.000000 | 2.000000 | 1.000000 | 80.000000 | 100.000000 | 100.000000 | 100.000000 | 100.000000 | 100.000000 | 15.000000 | 83.333333 | 4.000000 |
In [157]:
df4.loc[(df4['age'] >= age_m)].describe()
Out[157]:
| age | age_rec | isced | income | wealth | Certainty_5 | Uncertainty_2 | RiskComprehension_5 | GraphLiteracy_3 | Numeracy_2 | Bayesianreasoning_1 | Certainty_% | Uncertainty_% | RiskComprehension_% | GraphLiteracy_% | Numeracy_% | Bayesianreasoning_% | TotalScore_18 | TotalScore_% | Quartile Number | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| count | 541.000000 | 541.000000 | 541.000000 | 541.000000 | 5.410000e+02 | 541.000000 | 541.000000 | 541.000000 | 541.000000 | 541.000000 | 541.000000 | 541.000000 | 541.000000 | 541.000000 | 541.000000 | 541.000000 | 541.000000 | 541.000000 | 541.000000 | 541.000000 |
| mean | 38.018484 | 2.550832 | 1.423290 | 2.214418 | 1.078387e+07 | 2.179298 | 0.421442 | 2.216266 | 1.293900 | 1.033272 | 0.197782 | 43.585952 | 21.072089 | 44.325323 | 43.130006 | 51.663586 | 19.778189 | 7.341959 | 40.788663 | 2.543438 |
| std | 9.235180 | 0.608356 | 0.561193 | 1.084510 | 4.690035e+07 | 1.263159 | 0.589902 | 1.084996 | 0.968265 | 0.792793 | 0.398695 | 25.263180 | 29.495078 | 21.699921 | 32.275495 | 39.639645 | 39.869541 | 2.530458 | 14.058100 | 1.073441 |
| min | 30.500000 | 2.000000 | 1.000000 | 1.000000 | 0.000000e+00 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 1.000000 | 5.555556 | 1.000000 |
| 25% | 30.500000 | 2.000000 | 1.000000 | 1.000000 | 3.000000e+05 | 1.000000 | 0.000000 | 1.000000 | 1.000000 | 0.000000 | 0.000000 | 20.000000 | 0.000000 | 20.000000 | 33.333333 | 0.000000 | 0.000000 | 6.000000 | 33.333333 | 2.000000 |
| 50% | 35.000000 | 2.000000 | 1.000000 | 2.000000 | 1.200000e+06 | 2.000000 | 0.000000 | 2.000000 | 1.000000 | 1.000000 | 0.000000 | 40.000000 | 0.000000 | 40.000000 | 33.333333 | 50.000000 | 0.000000 | 7.000000 | 38.888889 | 3.000000 |
| 75% | 40.500000 | 3.000000 | 2.000000 | 3.000000 | 5.000000e+06 | 3.000000 | 1.000000 | 3.000000 | 2.000000 | 2.000000 | 0.000000 | 60.000000 | 50.000000 | 60.000000 | 66.666667 | 100.000000 | 0.000000 | 9.000000 | 50.000000 | 3.000000 |
| max | 70.500000 | 4.000000 | 3.000000 | 5.000000 | 6.000000e+08 | 5.000000 | 2.000000 | 5.000000 | 3.000000 | 2.000000 | 1.000000 | 100.000000 | 100.000000 | 100.000000 | 100.000000 | 100.000000 | 100.000000 | 14.000000 | 77.777778 | 4.000000 |
In [ ]:
In [158]:
fig, ax1 = plt.subplots(figsize=(6, 6))
sns.regplot (data = df4.loc[(df4['age'] < age_m) & (df4['isced']==1)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] < age_m) & (df4['isced']==1)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (data = df4.loc[(df4['age'] < age_m) & (df4['isced']==2)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] < age_m) & (df4['isced']==2)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (data = df4.loc[(df4['age'] < age_m) & (df4['isced']==3)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] < age_m) & (df4['isced']==3)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')
ax1.set(ylabel='Total Scores_19', xlabel='WEALTH Quartile Number for < median age')
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
fig, ax2 = plt.subplots(figsize=(6, 6))
sns.regplot (data = df4.loc[(df4['age'] >= age_m) & (df4['isced']==1)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] >=age_m) & (df4['isced']==1)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (data = df4.loc[(df4['age'] >=age_m) & (df4['isced']==2)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] >=age_m) & (df4['isced']==2)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (data = df4.loc[(df4['age'] >=age_m) & (df4['isced']==3)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] >=age_m) & (df4['isced']==3)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')
ax2.set(ylabel='Total Scores_19', xlabel='WEALTH Quartile Number for >=median age')
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
In [159]:
fig, ax1 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df4.loc[(df4['age'] < age_m) & (df4['isced']==1)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] < age_m) & (df4['isced']==1)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (scatter = False, data = df4.loc[(df4['age'] < age_m) & (df4['isced']==2)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] < age_m) & (df4['isced']==2)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (scatter = False, data = df4.loc[(df4['age'] < age_m) & (df4['isced']==3)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] < age_m) & (df4['isced']==3)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')
ax1.errorbar(x = df4.loc[ (df4['age'] < age_m) ]["Quartile Number"].unique(), y = df4.loc[ (df4['age'] < age_m) ].groupby(['Quartile Number'])['TotalScore_18'].mean(), yerr = df4.loc[ (df4['age'] < age_m) ].groupby(['Quartile Number'])['TotalScore_18'].sem(), fmt='o', color = lighten_color('gray',0.5))
ax1.set(ylabel='Total Scores_19', xlabel='WEALTH Quartile Number for < median age', yticks = np.arange(5, 16 , 1))
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
fig, ax2 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df4.loc[(df4['age'] >=age_m) & (df4['isced']==1)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] >=age_m) & (df4['isced']==1)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (scatter = False, data = df4.loc[(df4['age'] >=age_m) & (df4['isced']==2)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] >=age_m) & (df4['isced']==2)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (scatter = False, data = df4.loc[(df4['age'] >=age_m) & (df4['isced']==3)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] >=age_m) & (df4['isced']==3)]['TotalScore_18'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')
ax2.errorbar(x = df4.loc[ (df4['age'] >= age_m) ]["Quartile Number"].unique(), y = df4.loc[ (df4['age'] >=age_m) ].groupby(['Quartile Number'])['TotalScore_18'].mean(), yerr = df4.loc[ (df4['age'] >=age_m) ].groupby(['Quartile Number'])['TotalScore_18'].sem(), fmt='o', color = lighten_color('gray',0.5))
ax2.set(ylabel='Total Scores_19', xlabel='WEALTH Quartile Number for >=median age', yticks = np.arange(5, 16 , 1))
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
In [160]:
fig, ax1 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df4.loc[(df4['age'] < age_m) & (df4['isced']==1)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] < age_m) & (df4['isced']==1)]['Certainty_5'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (scatter = False, data = df4.loc[(df4['age'] < age_m) & (df4['isced']==2)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] < age_m) & (df4['isced']==2)]['Certainty_5'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (scatter = False, data = df4.loc[(df4['age'] < age_m) & (df4['isced']==3)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] < age_m) & (df4['isced']==3)]['Certainty_5'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')
ax1.errorbar(x = df4.loc[ (df4['age'] < age_m) ]["Quartile Number"].unique(), y = df4.loc[ (df4['age'] < age_m) ].groupby(['Quartile Number'])['Certainty_5'].mean(), yerr = df4.loc[ (df4['age'] < age_m) ].groupby(['Quartile Number'])['Certainty_5'].sem(), fmt='o', color = lighten_color('gray',0.5))
ax1.set(ylabel='Certainty_5', xlabel='WEALTH Quartile Number for < median age', yticks = np.arange(0, 6 , 1))
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
fig, ax2 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df4.loc[(df4['age'] >=age_m) & (df4['isced']==1)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] >=age_m) & (df4['isced']==1)]['Certainty_5'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (scatter = False, data = df4.loc[(df4['age'] >=age_m) & (df4['isced']==2)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] >=age_m) & (df4['isced']==2)]['Certainty_5'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (scatter = False, data = df4.loc[(df4['age'] >=age_m) & (df4['isced']==3)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] >=age_m) & (df4['isced']==3)]['Certainty_5'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')
ax2.errorbar(x = df4.loc[ (df4['age'] >= age_m) ]["Quartile Number"].unique(), y = df4.loc[ (df4['age'] >=age_m) ].groupby(['Quartile Number'])['Certainty_5'].mean(), yerr = df4.loc[ (df4['age'] >=age_m) ].groupby(['Quartile Number'])['Certainty_5'].sem(), fmt='o', color = lighten_color('gray',0.5))
ax2.set(ylabel='Certainty_5', xlabel='WEALTH Quartile Number for >=median age')
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
In [161]:
fig, ax1 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df4.loc[(df4['age'] < age_m) & (df4['isced']==1)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] < age_m) & (df4['isced']==1)]['RiskComprehension_5'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (scatter = False, data = df4.loc[(df4['age'] < age_m) & (df4['isced']==2)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] < age_m) & (df4['isced']==2)]['RiskComprehension_5'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (scatter = False, data = df4.loc[(df4['age'] < age_m) & (df4['isced']==3)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] < age_m) & (df4['isced']==3)]['RiskComprehension_5'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')
ax1.errorbar(x = df4.loc[ (df4['age'] < age_m) ]["Quartile Number"].unique(), y = df4.loc[ (df4['age'] < age_m) ].groupby(['Quartile Number'])['RiskComprehension_5'].mean(), yerr = df4.loc[ (df4['age'] < age_m) ].groupby(['Quartile Number'])['RiskComprehension_5'].sem(), fmt='o', color = lighten_color('gray',0.5))
ax1.set(ylabel='RiskComprehension_5', xlabel='WEALTH Quartile Number for < median age', yticks = np.arange(0, 3 , 1))
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
fig, ax2 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df4.loc[(df4['age'] >=age_m) & (df4['isced']==1)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] >=age_m) & (df4['isced']==1)]['RiskComprehension_5'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (scatter = False, data = df4.loc[(df4['age'] >=age_m) & (df4['isced']==2)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] >=age_m) & (df4['isced']==2)]['RiskComprehension_5'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (scatter = False, data = df4.loc[(df4['age'] >=age_m) & (df4['isced']==3)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] >=age_m) & (df4['isced']==3)]['RiskComprehension_5'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')
ax2.errorbar(x = df4.loc[ (df4['age'] >= age_m) ]["Quartile Number"].unique(), y = df4.loc[ (df4['age'] >=age_m) ].groupby(['Quartile Number'])['RiskComprehension_5'].mean(), yerr = df4.loc[ (df4['age'] >=age_m) ].groupby(['Quartile Number'])['RiskComprehension_5'].sem(), fmt='o', color = lighten_color('gray',0.5))
ax2.set(ylabel='RiskComprehension_5', xlabel='WEALTH Quartile Number for >=median age', yticks = np.arange(0, 3 , 1))
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
In [162]:
fig, ax1 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df4.loc[(df4['age'] < age_m) & (df4['isced']==1)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] < age_m) & (df4['isced']==1)]['Numeracy_2'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (scatter = False, data = df4.loc[(df4['age'] < age_m) & (df4['isced']==2)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] < age_m) & (df4['isced']==2)]['Numeracy_2'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (scatter = False, data = df4.loc[(df4['age'] < age_m) & (df4['isced']==3)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] < age_m) & (df4['isced']==3)]['Numeracy_2'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')
ax1.errorbar(x = df4.loc[ (df4['age'] < age_m) ]["Quartile Number"].unique(), y = df4.loc[ (df4['age'] < age_m) ].groupby(['Quartile Number'])['Numeracy_2'].mean(), yerr = df4.loc[ (df4['age'] < age_m) ].groupby(['Quartile Number'])['Numeracy_2'].sem(), fmt='o', color = lighten_color('gray',0.5))
ax1.set(ylabel='Numeracy_2', xlabel='WEALTH Quartile Number for < median age', yticks = np.arange(0, 6 , 1))
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
fig, ax2 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df4.loc[(df4['age'] >=age_m) & (df4['isced']==1)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] >=age_m) & (df4['isced']==1)]['Numeracy_2'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (scatter = False, data = df4.loc[(df4['age'] >=age_m) & (df4['isced']==2)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] >=age_m) & (df4['isced']==2)]['Numeracy_2'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (scatter = False, data = df4.loc[(df4['age'] >=age_m) & (df4['isced']==3)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] >=age_m) & (df4['isced']==3)]['Numeracy_2'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')
ax2.errorbar(x = df4.loc[ (df4['age'] >= age_m) ]["Quartile Number"].unique(), y = df4.loc[ (df4['age'] >=age_m) ].groupby(['Quartile Number'])['Numeracy_2'].mean(), yerr = df4.loc[ (df4['age'] >=age_m) ].groupby(['Quartile Number'])['Numeracy_2'].sem(), fmt='o', color = lighten_color('gray',0.5))
ax2.set(ylabel='Numeracy_2', xlabel='WEALTH Quartile Number for >=median age', yticks = np.arange(0, 6 , 1))
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
In [163]:
fig, ax1 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df4.loc[(df4['age'] < age_m) & (df4['isced']==1)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] < age_m) & (df4['isced']==1)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (scatter = False, data = df4.loc[(df4['age'] < age_m) & (df4['isced']==2)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] < age_m) & (df4['isced']==2)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (scatter = False, data = df4.loc[(df4['age'] < age_m) & (df4['isced']==3)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] < age_m) & (df4['isced']==3)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')
ax1.errorbar(x = df4.loc[ (df4['age'] < age_m) ]["Quartile Number"].unique(), y = df4.loc[ (df4['age'] < age_m) ].groupby(['Quartile Number'])['GraphLiteracy_3'].mean(), yerr = df4.loc[ (df4['age'] < age_m) ].groupby(['Quartile Number'])['GraphLiteracy_3'].sem(), fmt='o', color = lighten_color('gray',0.5))
ax1.set(ylabel='GraphLiteracy_3', xlabel='WEALTH Quartile Number for < median age', yticks = np.arange(0, 4 , 1))
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
fig, ax2 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df4.loc[(df4['age'] >=age_m) & (df4['isced']==1)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] >=age_m) & (df4['isced']==1)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (scatter = False, data = df4.loc[(df4['age'] >=age_m) & (df4['isced']==2)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] >=age_m) & (df4['isced']==2)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (scatter = False, data = df4.loc[(df4['age'] >=age_m) & (df4['isced']==3)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] >=age_m) & (df4['isced']==3)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')
ax2.errorbar(x = df4.loc[ (df4['age'] >= age_m) ]["Quartile Number"].unique(), y = df4.loc[ (df4['age'] >=age_m) ].groupby(['Quartile Number'])['GraphLiteracy_3'].mean(), yerr = df4.loc[ (df4['age'] >=age_m) ].groupby(['Quartile Number'])['GraphLiteracy_3'].sem(), fmt='o', color = lighten_color('gray',0.5))
ax2.set(ylabel='GraphLiteracy_3', xlabel='WEALTH Quartile Number for >=median age', yticks = np.arange(0, 4 , 1))
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
In [164]:
fig, ax1 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df4.loc[(df4['age'] < age_m) & (df4['isced']==1)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] < age_m) & (df4['isced']==1)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (scatter = False, data = df4.loc[(df4['age'] < age_m) & (df4['isced']==2)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] < age_m) & (df4['isced']==2)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (scatter = False, data = df4.loc[(df4['age'] < age_m) & (df4['isced']==3)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] < age_m) & (df4['isced']==3)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')
ax1.errorbar(x = df4.loc[ (df4['age'] < age_m) ]["Quartile Number"].unique(), y = df4.loc[ (df4['age'] < age_m) ].groupby(['Quartile Number'])['Bayesianreasoning_1'].mean(), yerr = df4.loc[ (df4['age'] < age_m) ].groupby(['Quartile Number'])['Bayesianreasoning_1'].sem(), fmt='o', color = lighten_color('gray',0.5))
ax1.set(ylabel='Bayesianreasoning_1', xlabel='WEALTH Quartile Number for < median age', yticks = np.arange(0, 5 , 1))
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
fig, ax2 = plt.subplots(figsize=(6, 6))
sns.regplot (scatter = False, data = df4.loc[(df4['age'] >=age_m) & (df4['isced']==1)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] >=age_m) & (df4['isced']==1)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (scatter = False, data = df4.loc[(df4['age'] >=age_m) & (df4['isced']==2)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] >=age_m) & (df4['isced']==2)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (scatter = False, data = df4.loc[(df4['age'] >=age_m) & (df4['isced']==3)].reset_index(drop = True), x = 'Quartile Number', y = df4.loc[(df4['age'] >=age_m) & (df4['isced']==3)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')
ax2.errorbar(x = df4.loc[ (df4['age'] >= age_m) ]["Quartile Number"].unique(), y = df4.loc[ (df4['age'] >=age_m) ].groupby(['Quartile Number'])['Bayesianreasoning_1'].mean(), yerr = df4.loc[ (df4['age'] >=age_m) ].groupby(['Quartile Number'])['Bayesianreasoning_1'].sem(), fmt='o', color = lighten_color('gray',0.5))
ax2.set(ylabel='Bayesianreasoning_1', xlabel='WEALTH Quartile Number for >=median age', yticks = np.arange(0, 5 , 1))
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
In [ ]:
In [ ]:
In [ ]:
In [ ]: